node.js - 如何在 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();
})
//...
推荐阅读
- rest - 如何使用 REST API 在 Maximo 工单的多资产/位置部分添加资产?
- mongodb - 如何将 Mongo 变量的结果重定向到集合,然后将其导出到 csv 文件
- java - 使用相同的镜像名称更新 kubernetes 部署
- html - 按下按钮后如何更改按钮颜色?
- mysql - 如何使 MySQL MATCH...AGAINST 使用各种单词分隔符?
- java - 如何使用 java 代码突出显示 Android 中的按钮?
- python - vgg = tf.keras.applications.vgg19.VGG19 不确定模型是否正确加载
- react-native - 如何测试使用 react-i18next 的 react-native 组件?
- ios - 用于插入新对象的 CoreData 语法
- sql - 如何使用子组合对许多单独的表进行有效组合