我正在Node中編寫爬網程序,並剛剛發現了奇妙的async.js庫。我想不要壓倒我抓取的服務器。所以我想在迭代之間引入一個延遲。做這個的最好方式是什麼?我可以從setTimeout中的迭代器調用callback()嗎?如何在async.js迭代器(節點)中添加延遲
4
A
回答
3
由於與異步庫的異步任務的完成總是通過調用完成回調信號,你可以簡單地推遲調用,通過把它放在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() {
//...
});
1
,將工作,你可以使用異步系列,像這樣:
async.eachSeries(TheUrl, function (eachUrl, done) {
setTimeout(function() {
var url = 'www.myurl.com='+eachUrl;
request(url, function(error, resp, body) {
if (error) return callback(error);
var $ = cheerio.load(body);
//Some calculations again...
done();
});
}, 10000);
}, function (err) {
if (!err) callback();
});
相關問題
- 1. vba求解 - 爲迭代添加延遲
- 2. 如何迭代延遲
- 3. 在成幀器中延遲迭代
- 4. 如何使用setTimeout爲每次迭代添加延遲?
- 5. 在懸停延遲中添加延遲
- 6. 如何使用jQuery延遲迭代通過div延遲?
- 7. 如何在for循環中添加延遲執行連續迭代?
- 8. 在循環迭代中創建延遲
- 9. 動畫迭代延遲CSS3
- 10. 在jquery中添加延遲
- 11. 在angularjs中添加延遲
- 12. 在Verilog中添加延遲
- 13. 添加延遲()
- 14. 如何在延遲之前添加延遲
- 15. 如何在pygame中添加延遲點擊鼠標?
- 16. 如何在JQuery代碼中添加延遲
- 17. MvcSiteMapProvider延遲加載動態節點
- 18. 爲每一個元素迭代時添加一個延遲
- 19. 添加延遲CSS添加
- 20. XCode 6 - 循環中的延遲迭代?
- 21. 添加可延遲事件的延遲
- 22. 如何在Javascript中添加服務器端延遲for循環?
- 23. Rxjs在特定迭代中增加延遲
- 24. ExecutorService添加延遲
- 25. jQuery:在每個迭代器中使用時間延遲?
- 26. JavaScript:爲創建的每個節點添加延遲
- 27. 如何將延遲時間添加到JavaScript代碼行中
- 28. 給現有代碼添加延遲?
- 29. 向java代碼添加延遲
- 30. 多節點設置中的Hazelcast延遲
請顯示您的代碼的代表版本。在代碼的上下文中回答這樣的問題更方便。 – jfriend00