我正在用 Node 编写一个爬虫,刚刚发现了很棒的 async.js图书馆。我不想让我抓取的服务器不堪重负。所以我想在迭代之间引入延迟。做这个的最好方式是什么?我可以只从 setTimeout 内的迭代器调用 callback() 吗?
最佳答案
由于使用 Async 库完成任何异步任务总是通过调用完成回调来发出信号,因此您可以通过将其放入 setTimeout()
中来简单地延迟调用。这是一个示例,改编自异步文档中的示例:
async.eachSeries(hugeArray, function iterator(item, callback) {
doSomeIO(item, function(err, result) {
setTimeout(function() {
// process err or result here
callback(err);
}, 500);
});
}
}, function done() {
//...
});
关于node.js - 如何在 async.js 迭代器( Node )中添加延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34279090/