我有一个麻烦的问题,无法找到正确的答案。它在不支持await和async的firebase中。
目前,它可以运行,但只能运行一次,并且不会循环。
return foo.bar(query);})
.then((result) => {
if (result == '0') {
//do stuff
}
else {
var i;
for(i = 0; i <= result; i++) {
return foo.bar(secondQuery);})
.then((secondResult) => {
//do other stuff
})
}
}
})
答案 0 :(得分:2)
您可以使用Promise.all
Promise.all(iterable)方法返回一个Promise 当可迭代参数中的所有promise具有时解析 解决或可迭代参数不包含任何承诺时。它 拒绝的原因是第一个拒绝的承诺。
return foo.bar(query).then(result => {
if (result == '0') {
//do stuff
} else {
var i;
var all = [];
for (i = 0; i <= result; i++) {
var p = foo.bar(secondQuery).then((secondResult) => {
//do other stuff
});
all.push(p)
}
return Promise.all(all);
}
});