有没有办法告诉节点流(v0.10 +)是否暂停?

时间:2014-03-05 02:13:21

标签: node.js stream

如果我有stream,如果可以判断它是否暂停,有没有办法?

例如,我们可以在下面的有点愚蠢的例子中使用isPaused()

var readable = getReadableStreamSomehow();
var pendingOtherOps = 0;
readable.on('data', function(chunk) {
  // about to do something that takes longer relative to our stream, may need to pause
  if (++pendingOtherOps >= MAX_PENDING) {
    stream.pause();
  }
  doOtherOp(data, function(err) {
    if (--pendingOtherOps === 0 && stream.isPaused()) {
      // ok we've got our other ops under control, lets turn stream back on
      stream.resume();
    }
  });
});

现在,当我暂停/取消暂停时,我正在使用一个单独的布尔值,这似乎是多余的,因为信息已经在流中了。

1 个答案:

答案 0 :(得分:0)

不,但是:

  1. 您可以自行运行stream.pause(); stream._paused = true并设置此标志
  2. 即使流未暂停,您也可以stream.resume()运行,因此在您的特定情况下不需要检查