我正在运行一个for循环,它调用一个执行GET请求的函数
for (var i = 0; i < uids.length; i++) {
makeRequest(uids[i]);
}
function makeRequest(hostname) {
request({
url: url,
json: true
}, function(error, response, body) {
if (!error && response.statusCode === 200) {
//display the data etc
}
}
}
在每个请求完成并完成后,for循环是否可以仅进行迭代。例如,一旦GET请求完成并返回结果?
我考虑过实施一些超时,但我不确定这是否是最佳解决方案。
答案 0 :(得分:0)
让它递归,直到剩下物品:
var itemsLeft = uids.length;
function makeRequest(hostname) {
request({
url: url,
json: true
}, function(error, response, body) {
if (!error && response.statusCode === 200) {
if( itemsLeft !== 0 ) {
makeRequest( hostname );
itemsLeft -= 1;
}
}
})
}
答案 1 :(得分:0)
可以建议查看https://github.com/FuturesJS/forEachAsync之类的内容。检查their example以了解如何使用该库。