【发布时间】:2016-02-17 10:14:29
【问题描述】:
我有以下循环发出 10 个请求。 console.log 将从 1 打印到 10。如何修改此代码以仅打印出 peopleProfile (10) 的最终长度?
for (var i = 0; i < 10; i++) {
request(URL, function(err, response, body) {
if (err) {
console.log(err);
}
if (!err && response.statusCode == 200) {
peopleProfile.push(body);
console.log(peopleProfile.length);
}
});
}
【问题讨论】:
-
你不能做异步和循环,你基本上是同时做10个请求,而不是顺序。
-
你能指出一个更好的方法来解决这个问题吗?我想发出 10 个请求并将每个请求的响应存储到
peopleProfile。 -
我的目标是像
sequence(range(1,10).map(request(url))这样request(url)返回一个promise,sequence接受一个promise 数组并按顺序运行它们。 -
对使用
promises有异议吗? -
您可以统计已解决的请求和被拒绝的请求,并检查总和何时达到 10
标签: javascript node.js