发出错误时节点流挂起

时间:2016-05-22 14:05:34

标签: node.js node-streams

我有一个检查CSV的流。它工作正常,除非发出错误,它甚至在我发回响应后也会挂起。

base + off

我能够通过添加一个destroy方法来修复它但它仍然很慢并且用它挂起几秒钟。有没有更好的方法来结束/销毁转换流?

export function ValidateCSV(options) {
  let opt = options;
  if (!(this instanceof ValidateCSV)) return new ValidateCSV(opt);

  if (!opt) opt = {};
  opt.objectMode = true;
  opt.highWaterMark = 1000000;
  Transform.call(this, opt);
}

util.inherits(ValidateCSV, Transform);

ValidateCSV.prototype.destroy = function () {
  this.readable = false;
  this.writable = false;
  this.emit('end');
};

ValidateCSV.prototype._transform = function (chunk, encoding, done) {
  // Do some stuff to the chunk
  // Emit error
    if (required.length > 0) {
        this.emit('error', `The following columns are required: ${required.join(', ')}`);
    }

  done();
};

编辑:

以下是我如何使用busboy:

ValidateCSV.prototype.destroy = function () {
    this.readable = false;
    this.writable = false;
    this.emit('end');
  };

0 个答案:

没有答案