node.js - 如何在 async.js 迭代器( Node )中添加延迟

标签 node.js async.js

我正在用 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/

相关文章:

node.js - 为什么我的 Sinon spy 函数在 promise then 子句中调用时不起作用?

javascript - 异步模块 .map 的奇怪行为

async.js - 我如何知道 Puppeteer 中的页面是否已关闭

javascript - javascript 中的异步 foreach,步长为 n

node.js - 如何配置 __dirname 指向 Node 中的项目目录?

proxy - 如何在nodejs中通过Web代理使用HTTPS

node.js - 如何打破 Nodejs 中包含 if 语句的 For 循环

node.js - 我看似有效的 URL 在本地解析,但在部署到 heroku 上时失败

javascript - 对 Node.js 的 async.parallel() 的调用是同步的吗?