1
我有这个功能,应该使网页(基准测试)300请求,但是Promise.all没有等待这些请求完成之前输出一个空的数组,任何想法?NodeJs,承诺不等待
function requestLoop(){
var resultSet= [];
// options.requests = 300
// options.url = http://localhost/
for(var c=1;c<=options.requests; c++){
http.get(options.url, function(res){
// resultSet.push({ request: c, statusCode: res.statusCode});
resultSet.push(new Promise(function(res){ return { request: c, statusCode: res.statusCode}; }));
});
}
Promise.all(resultSet).then(function(){
console.log(resultSet);
});
return;
}
无极是蓝鸟和http是正常的HTTP包
的[可能的复制如何返回从一个异步调用的响应?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –
您正在callback中创建承诺。当'Promise.all(resultSet )'执行的非承诺被创建。 –
我不同意,我没有使用AJAX,并且该问题仅涉及单个请求,我正在尝试使用多个并将结果放在一起。 – B1scuit