2013-10-11 58 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

相關問題