2013-10-11 124 views
0

我在创建javascript时遇到了一个小问题。nodejs + shell(expect)+ child_process

我有一个js其产卵的shell脚本(期望,哪个SSH另一台计算机,以及一些数据发送回的NodeJS。

我在多线程有问题。

var cons = spawn('./somescript'); 
var content; 
cons.stdout.on('data', function(block) 
{ 
content += block; 
mrdialist = JSON.parse(block); 
.... 
console.log("" + block); 
}); 
console.log("hjdfsdf"); 
here is some actions with loaded and parced data. 

但是当我尝试执行JScr​​ipt中,它从一开始就开始,并通过加载数据的所有操作无需加载和解析, 我怎样才能继续代码onlu的执行,执行后

console.log("" + block); 
    }); 
    console.log("hjdfsdf"); 

回答

1

spawn将以异步方式执行。当事件close将被发射时,您必须执行您的代码。

var cons = spawn('./somescript'); 
var content; 
cons.stdout.on('data', function(block) 
{ 
content += block; 
mrdialist = JSON.parse(block); 
.... 
console.log("" + block); 
}); 

cons.on('close', function() { 
    console.log("hjdfsdf"); 
    // manipulate content 
    console.log("content", content); 
}); 
+0

这是一个问题怎么办 – Barterio

+0

我更新了我的回复。 – peernohell

+0

它仍然继续执行整个脚本,即使在('close') – Barterio

相关问题