假设我有一个数组,正在使用forEach循环进行迭代。
对于每个元素,我正在运行Firestore set()
函数。
一旦所有承诺都完成,我想得到一个回调。
是否有比将所有promise放入数组然后再使用Promise.all()
更好的方法?
var promArr = [];
arr.forEach(elem => {
promArr.push(db.collection('col').doc(elem).set({
key: 'value'
}))
})
Promise.all(promArr).then(_ => {
console.log('All promises fulfilled.')
})
答案 0 :(得分:2)
您可以使用map
保存一行:
const promArr = arr.map(elem => {
return db.collection('col').doc(elem).set({
key: 'value'
});
});