延迟http请求的for循环

我刚刚开始使用JS和Node.js。我正在尝试使用Node.js和一些模块(例如request和)构建一个简单的刮板作为第一个项目cheerio我想在数组中包含的每个域的每个http请求之间添加5秒的延迟。你能解释一下怎么做吗?

这是我的代码:

var request = require('request');

var arr = [ "http://allrecipes.com/", "http://www.gossip.fr/" ];

for(var i=0; i < arr.length; i++) {
    request(arr[i], function (error, response, body){
        console.log('error:', error);
        console.log('statusCode:', response && response.statusCode);
        console.log('body:', body);
    });
}
安德烈·波波夫(Andrey Popov)

用途setTimeout

var request = require('request');
var arr = ["http://allrecipes.com/", "http://www.gossip.fr/" ];

for (var i = 0; i < arr.length; i++) {
    setTimeout(request, 5000 * i, arr[i], function (error, response, body){
        console.log('error:', error);
        console.log('statusCode:', response && response.statusCode);
        console.log('body:', body);
    });
}

您基本上可以进行循环,并说request应以等于的延迟调用方法,该延迟等于5000 * i5000ms乘以i,因此每次循环迭代将以5秒的时间增加。然后,提供所有将传递给函数的参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章