0
所以首先我想說的是,我寧願使用while()循環或do-while()循環,但我有一個異步「子進程「功能,需要回調標準輸出。無論如何,在運行腳本時,我的函數不會在命令提示符下輸出console.log(),即使在我添加.kill()函數的時候,exec似乎也在創建多個進程!node.js:Async.whilst()回調未按預期運行
我的問題我相信是基於範圍界定的,但我無法確定我要出錯的地方。所以有兩個問題,爲什麼不能使用while循環,以及我的函數究竟有什麼問題?
var stdout;
function checkStatus() {
async.whilst(
function(){return stdout != "Connected";},
function(callback){
var state;
state = exec("C:/ADMIN/Viscosity/ViscosityCC.exe "+'getstate '+ 1, function (error, stdout, stderr) {
stdout = (stdout.toString()).replace("\r\n\r\n", "");
console.log(stdout);
});
state.kill();
callback();
},
function(err){
console.log("Error");
}
);
}
checkStatus();
我不知道這是否會解決你的問題,但是你的'var stdout'作用域在頂部,然後你有'stdout'變量作爲參數傳遞給exec()的回調函數,你應該重命名其中的任何一個。你可能不會修改你認爲你正在修改的'stdout' var。 –