【发布时间】:2014-05-21 04:27:54
【问题描述】:
我有一个高地流正在逐行读取文件,我想将其减慢到每秒一个块。我浏览了文档,发现的唯一函数是throttle() 和debounce()。这两个值都下降了。我需要保持我所有的价值观,只是放慢速度。
【问题讨论】:
标签: javascript node.js stream highland.js
我有一个高地流正在逐行读取文件,我想将其减慢到每秒一个块。我浏览了文档,发现的唯一函数是throttle() 和debounce()。这两个值都下降了。我需要保持我所有的价值观,只是放慢速度。
【问题讨论】:
标签: javascript node.js stream highland.js
我建议将块映射到延迟流并对其进行排序:
var _ = require('highland');
function delay(x) {
return _(function (push, next) {
setTimeout(function () {
push(null, x);
push(null, _.nil);
}, 1000);
});
}
_([1, 2, 3, 4]).map(delay).series().each(_.log);
这里使用的延迟函数似乎很容易概括,所以如果您有兴趣发送拉取请求,我很乐意查看它:)
【讨论】:
这与 Caolan 的函数版本相同,但可配置。我为自己制作了另一个版本,跳过了第一个元素的延迟。
var _ = require('highland');
function delay(delayMs) {
return function(x) {
return _(function(push, next) {
return setTimeout((function() {
push(null, x);
return push(null, _.nil);
}), delayMs);
});
};
}
_([1, 2, 3, 4]).map(delay(1000)).series().each(_.log);
【讨论】: