阿西河

所有教程

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

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js stream.finished

      Node.js stream.finished(stream, callback)

      新增于: v10.0.0

      • stream < stream> 可读流或可写流。
      • callback < Function> 通知回调函数。

      当流不再可读、可写、发生错误、或提前关闭时,通过该函数获得通知。

      const { finished } = require('stream');
      
      const rs = fs.createReadStream('archive.tar');
      
      finished(rs, (err) => {
        if (err) {
          console.error('流发生错误', err);
        } else {
          console.log('流已读取完');
        }
      });
      
      rs.resume(); // 开始读取流。
      

      主要用于处理流被提前销毁(如 HTTP 请求被中止)等异常情况,此时流不会触发 ‘end’ 或 ‘finish’ 事件。

      finished 接口也可以 Promise 化:

      const finished = util.promisify(stream.finished);
      
      const rs = fs.createReadStream('archive.tar');
      
      async function run() {
        await finished(rs);
        console.log('流已读取完');
      }
      
      run().catch(console.error);
      rs.resume(); // 开始读取流。
      

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


      目录
      本文目录
      目录