如何在 caolan/async 队列 v3 中暂停流消费

How to pause stream consumption in caolan/async queue v3

我在 caolan v2.6.3 中有一个工作流消费者,它基本上会在队列饱和后立即暂停流消费,并在排空后恢复:

let q = async.queue(function(tasks, callback) {
  // ...
  callback()
}, 4);

q.drain = function() {
  some_readable_stream.resume()
}

q.saturated = function() {
  some_readable_stream.pause();
}

some_readable_stream.on("data", function(data) {
  q.push(data);
});

v3 中似乎有重大变化更新后,上述逻辑失败并出现错误

Cannot assign to read only property 'saturated' of object '#<Object>'

但我不确定在 v3 中什么是正确的替代品。

有人有什么提示吗?

v2中的属性q.saturatedq.unsaturatedq.drain是v3中的方法,所以可以这样解决:

// ...

q.drain(function() {
  some_readable_stream.resume()
})

q.saturated(function() {
  some_readable_stream.pause();
})

//...