我用请求加载一个json数据(长度为125664),从那个数据开始,我用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)
}
});
答案 0 :(得分:1)
看起来你想要async
& await
。将回调更改为async
功能,并在木偶操作时将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)
}
});
假设您的产品和统计功能已经异步。
答案 1 :(得分:0)
我无法弄清楚你要做什么,如果它是对函数product和stats的调用并行化,或者确保foreach循环等到异步调用都完成,那么我就不能要找到确切的代码,无论哪种方式,在nodejs中都有一个名为async的模块,它可以让你玩你想做的事情。组织算法并构造正确的并行或系列调用是一个问题。
看看这里:async