如何将 Highland.js 或 Node.js 流限制为每秒一个对象?
How can I throttle a Highland.js or Node.js stream to one object per second?
我希望能够将对 getPagerank()
的调用限制为每秒一次。我尝试了各种方法,但无法正常工作。
var pagerank = require('pagerank');
var _ = require('highland');
var urls = [
'google.com',
'yahoo.com',
'bing.com'
];
var getPagerank = _.wrapCallback(pagerank);
// I want to throttle calls to getPagerank to 1/sec
var pageRanks = _(urls)
.map(getPagerank)
.merge();
pageRanks.toArray(function(arr) {
console.log(arr);
});
您可以使用.ratelimit()
例如这会将流限制为每秒处理数组的一项
var _ = require('highland');
_([1,2,3,4]).ratelimit(1, 1000).map(function(x){
return String(x);
})
.pipe(process.stdout);
我希望能够将对 getPagerank()
的调用限制为每秒一次。我尝试了各种方法,但无法正常工作。
var pagerank = require('pagerank');
var _ = require('highland');
var urls = [
'google.com',
'yahoo.com',
'bing.com'
];
var getPagerank = _.wrapCallback(pagerank);
// I want to throttle calls to getPagerank to 1/sec
var pageRanks = _(urls)
.map(getPagerank)
.merge();
pageRanks.toArray(function(arr) {
console.log(arr);
});
您可以使用.ratelimit()
例如这会将流限制为每秒处理数组的一项
var _ = require('highland');
_([1,2,3,4]).ratelimit(1, 1000).map(function(x){
return String(x);
})
.pipe(process.stdout);