Pythonや他の言語と同じように、nodejsのstdoutフラッシュはありますか?
sys.stdout.write('some data')
sys.stdout.flush()
今、私はprocess.stdout.write()
nodejsだけを見ました。
Pythonや他の言語と同じように、nodejsのstdoutフラッシュはありますか?
sys.stdout.write('some data')
sys.stdout.flush()
今、私はprocess.stdout.write()
nodejsだけを見ました。
process.stdout
はWritableStream
オブジェクトであり、メソッドWritableStream.write()
はストリームを自動的にフラッシュします (明示的にコーキングされていない限り)。ただし、フラッシュが成功した場合は true を返し、カーネル バッファーがいっぱいでまだ書き込みできない場合は false を返します。連続して数回書き込む必要がある場合は、drain
イベントを処理する必要があります。
のドキュメントをwrite
参照してください。
新しい NodeJS バージョンでは、コールバックを.write()
に渡すことができます。これは、データがフラッシュされると呼び出されます。
sys.stdout.write('some data', () => {
console.log('The data has been flushed');
});
これは、結果を確認してイベント.write()
に登録するのとまったく同じです。drain
let write = sys.stdout.write('some data');
if (!write) {
sys.stdout.once('drain', () => {
console.log('The data has been flushed');
});
}
writetrue
は、データがフラッシュされた場合に戻ります。が返された場合はfalse
、「排水」イベントを待つことができます。
flush
ブロッキング操作になるため、はないと思います。