0
まず、while()ループまたはdo-while()ループを使用したいと思っていますが、非同期の "子プロセス "コールバックstdoutする必要がある関数です。とにかくスクリプトを実行しているとき、私の関数はコマンドプロンプトでconsole.log()を表示していません。また、最後に.kill()関数を追加してもexecが複数のプロセスを作成しているようです!node.js:コールバックが期待通りに機能しない
私の問題スコープに基づいていると信じていますが、どこが間違っているのかを特定できません。だから2つの質問、なぜそれが可能です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を変更していないかもしれません。 –