documentation for write()は言う:偽Node.jsの書き込み可能なストリームとドレインイベント
戻り値は、カーネルバッファがいっぱいであることを示すために、データが将来的に送信されます。
とdrain
イベントのドキュメントは言う:write()メソッドがfalseを返された後
、このイベントは、再び書き込むことが安全であることを示すために放出されます。
これは何を意味しますか?私はもう一度書くことができる前にdrain
イベントを待たなければなりませんか?私が書き込もうとしたデータには何が起こったのですか?それは失われていますか? drain
イベントを待たずに書き込みを呼び出すとどうなりますか?
()' 'res.write'は、まだユーザメモリにバッファリングされている間(つまり、カーネルバッファにフラッシュされません)?応答は失われますか? – Emmett
@Emmettバッファリングされた書き込み呼び出しがフラッシュされている間に 'process.exit()'を呼び出すと、そのデータは失われます。 – TooTallNate
戻り値を気にせずにwrite()を呼び出すことは完全に安全ではありません。 [current docs](https://nodejs.org/dist/v8.4.0/docs/api/stream.html)は次のように言っています:_ "流出していないストリーム上で' write() 'を呼び出すことは許されていますが、Node .jsは、メモリ使用量が最大になるまで、すべての書き込みチャンクをバッファリングします。その時点で、無条件に中断します。メモリが大量に使用されると、ガベージコレクタのパフォーマンスが低下し、RSSが高くなりますメモリがもう必要なくなった後)」_も参照してください:https://stackoverflow.com/q/37579605 – TachyonVortex