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ブロッキング操作になるため、はないと思います。