我用请求(长度为125664)加载一个json数据,并且从该数据中,我使用for循环,当然我不能一次全部显示它,因为它可能导致内存泄漏,等等,如何在每行的每一行上都使用休息时间,我尝试了各种方法,从setTimeout等开始,但是还没有任何效果

目前我的代码:

request({
  url: config.url.productSource,
  json: true
}, function(error, response, body) {
  console.log(body.length);
  for(let link of body) {
    console.log(link);
    product(link); // call puppeteer headless browser (async)
    stats(link); // call puppeteer headless browser (async)
  }
});

最佳答案

看起来像您要asyncawait。将您的回调更改为async函数,并在操纵up的呼叫中将其更改为await

request({
  url: config.url.productSource,
  json: true
}, async (error, response, body) => {
  console.log(body.length);
  for(let link of body) {
    console.log(link);
    await product(link); // call puppeteer headless browser (async)
    await stats(link); // call puppeteer headless browser (async)
  }
});


假设您的产品和统计信息功能已经异步。

关于node.js - sleep /等待,直到异步循环过程中的过程完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46290697/

10-17 01:34