阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js stream.Writable drain 事件

      Node.js stream.Writable drain 事件

      新增于: v0.9.4

      如果调用 stream.write(chunk) 返回 false,则当可以继续写入数据到流时会触发 ‘drain’ 事件。

      // 向可写流中写入数据一百万次。
      // 留意背压(back-pressure)。
      function writeOneMillionTimes(writer, data, encoding, callback) {
        let i = 1000000;
        write();
        function write() {
          let ok = true;
          do {
            i--;
            if (i === 0) {
              // 最后一次写入。
              writer.write(data, encoding, callback);
            } else {
              // 检查是否可以继续写入。 
              // 不要传入回调,因为写入还没有结束。
              ok = writer.write(data, encoding);
            }
          } while (i > 0 && ok);
          if (i > 0) {
            // 被提前中止。
            // 当触发 'drain' 事件时继续写入。
            writer.once('drain', write);
          }
        }
      }
      

      更多内容请参考:Node.js stream 流,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录