您好,我是 Promises 的新手,并且一直坚持如何等待 for 循环中的所有 Promise 解决,然后再转到下一个 then()。我已经看到了几个 promise.all 示例,但我不清楚如何为我的以下代码调整它们。它当前在 for 循环之后进入下一个 then() 并在 for 循环完成之前解析。任何帮助表示赞赏!
我正在使用pg-promise(带有承诺的 psql)。
原始代码:
function getTeamMembers(aTeam) {
let promise = new Promise(function(resolve, reject) {
db.getTeamMembers(aTeam.tid) //return sql results rows
.then(function(rows){
for(let i=0; i<rows.length; ++i) { //loop through each result row
getUserByUsername(rows[i].username)
.then(function(cfUser) { //add user from row to aTeam object
aTeam.addMember(cfUser);
})
.catch(function(e) {
reject(e);
});
}
})
.then(function(){
console.log(aTeam); //confirm added properly
resolve(aTeam); //resolve object
})
.catch(function(e) {
console.log('addMemberToTeamByUsername: '+e.stack);
reject(e);
});
});
return promise;
}