through2 docs中,它表示:


  一个围绕Node.js流的小型包装器,可以进行转换(Streams2 / 3)以避免
  显式子分类噪声。


那是什么意思?什么是“分类噪音”?

最佳答案

转换流的常见实现如下所示:

ES5语法

const { Transform } = require('stream');
const util = require('util');

function MyTransform(options) {
  if (!(this instanceof MyTransform))
    return new MyTransform(options);
  Transform.call(this, options);
}
util.inherits(MyTransform, Transform);

MyTransform.prototype._transform = function (chunk, enc, cb) {
  // do some data transformation
  this.push(chunk);
  cb();
};


ES6语法

const { Transform } = require('stream');

class MyTransform extends Transform {
  constructor(options) {
    super(options);
  }

  _transform(chunk, encoding, cb) {
    // do some data transformation
    this.push(chunk)
    cb()
  }
}


如您所见,要实现转换流,您必须编写一些样板代码,例如扩展Transform接口等。

通过使用through2,您只需编写转换函数。利润。

08-25 15:14