私は\n
(実行を終了する)を待つ間にstdout
に情報を記録するSwiftプログラムを持っています。これは、スタートランニング直後の入力を要求し、情報1〜2秒後に記録されます:私はspawn
はとそれをINGの/ execFile
をINGのだ入力を待っている生成プロセスのstdoutを読む
fetchAndLogDataInBackground(); // will print some data in ~1 sec
readLine();
次
const spawn = require('child_process').spawn;
const process = spawn('swift/main');
process.stdout.on('data', data => console.log(data.toString()));
setTimeout(() => {
process.stdin.write('\n');
}, 5000);
は、私が見て期待していましたon('data')
を使用しているため「ログ」がライブに記録されますが、処理が完了するのはprocess.stdin.write('\n');
です。
データを「ライブ」にする方法はありますか?
PS:Swiftプログラムを端末(swift/main
)で実行すると、期待どおりに動作します。
それはあなたが期待しているものを私に明確ではありません。私には、それはすべきであるように思える:あなたの素早いプログラムは、行を読むまでは何も印刷せず、あなたがswiftプログラムに新しい行を書くまでstdoutの '' data''イベントを得ないと言っている... – mscdex
@mscdex申し訳ありません!私は例として間違ったスニペットを書いた:(私はそれを修正するために質問を編集しました!:) – Matheus