如何在 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.saturated
、q.unsaturated
和q.drain
是v3中的方法,所以可以这样解决:
// ...
q.drain(function() {
some_readable_stream.resume()
})
q.saturated(function() {
some_readable_stream.pause();
})
//...
我在 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.saturated
、q.unsaturated
和q.drain
是v3中的方法,所以可以这样解决:
// ...
q.drain(function() {
some_readable_stream.resume()
})
q.saturated(function() {
some_readable_stream.pause();
})
//...