gpt4 book ai didi

javascript - promise 在循环内等待

转载 作者:行者123 更新时间:2023-12-03 03:53:49 25 4
gpt4 key购买 nike

我有这个代码:

var services = ['EC2', 'S3', 'RDS', 'IAM']
var promises = [];

for(var i = 0; i < services.length; i++) {
var promise = awsStatus('us-east-1', services[i])
promises.push(promise);
console.log(promises);
}

q.all(promises).then(function(data){
console.log(promises);
});

它应该使用 awsStatus 方法在 services 数组上循环。问题是有时我会得到我想要的所有结果:

{ service: 'IAM', status: 0 }
{ service: 'EC2', status: 0 }
{ service: 'RDS', status: 0 }

但有时我会得到不完整的结果。我认为在 awsStatus 之后需要 .then 但这也没有解决这个问题。这段代码还有什么问题吗?

既然有评论,我也尝试过这个:

var services = ['EC2', 'S3', 'RDS', 'IAM']
var promises = [];

for(var i = 0; i < services.length; i++) {
var promise = awsStatus('us-east-1', services[i]).then(function(promise){
promises.push(promise);
//console.log(promises);
});
}
q.all(promises).then(function(data){
console.log(promises);
});

它会产生相同的结果。

最佳答案

尝试使用.each

Promise.each(services, function(service) {
return awsStatus('us-east-1', service).then(function(promise){
promises.push(promise);
//console.log(promises);
});
}).then(function() {
console.log('Done with all instances');
});

关于javascript - promise 在循环内等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45049496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com