阿西河

所有教程

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

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js stream 双工流的例子

      Node.js stream 双工流的例子

      下面是一个双工流的例子,封装了一个可读可写的底层资源对象。

      const { Duplex } = require('stream');
      const kSource = Symbol('source');
      
      class MyDuplex extends Duplex {
        constructor(source, options) {
          super(options);
          this[kSource] = source;
        }
      
        _write(chunk, encoding, callback) {
          // 底层资源只处理字符串。
          if (Buffer.isBuffer(chunk))
            chunk = chunk.toString();
          this[kSource].writeSomeData(chunk);
          callback();
        }
      
        _read(size) {
          this[kSource].fetchSomeData(size, (data, encoding) => {
            this.push(Buffer.from(data, encoding));
          });
        }
      }
      

      双工流最重要的方面是,可读端和可写端相互独立于彼此地共存在同一个对象实例中。


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


      目录
      本文目录
      目录