事件:'drain'


\Event: 'drain'

新增于: v0.9.4

如果对 stream.write(chunk) 的调用返回 false,则 'drain' 事件将在适合继续将数据写入流时触发。

\If a call to stream.write(chunk) returns false, the 'drain' event will be emitted when it is appropriate to resume writing data to the stream.

// Write the data to the supplied writable stream one million times.
// Be attentive to back-pressure.
function writeOneMillionTimes(writer, data, encoding, callback) {
 let i = 1000000;
 write();
 function write() {
 let ok = true;
 do {
 i--;
 if (i === 0) {
 // Last time!
 writer.write(data, encoding, callback);
 } else {
 // See if we should continue, or wait.
 // Don't pass the callback, because we're not done yet.
 ok = writer.write(data, encoding);
 }
 } while (i > 0 && ok);
 if (i > 0) {
 // Had to stop early!
 // Write some more once it drains.
 writer.once('drain', write);
 }
 }
} 

AltStyle によって変換されたページ (->オリジナル) /