Javascript 返还有条件承诺

Javascript 返还有条件承诺,javascript,typescript,firebase,promise,Javascript,Typescript,Firebase,Promise,我需要循环通过diff12或diff21。 在每次迭代中,我都会得到一个承诺 我只想在所有迭代发生之后一起解决这些承诺 我不知道是否只有diff12或只有diff21或两者都在循环 我如何确保只解决那些存在的承诺 我是如何做到这一点的: var diffPromises: Array<any> = []; diff12.forEach(currstudent => { diffPromises.push(db.collection('users').doc(currs

我需要循环通过
diff12
diff21
。 在每次迭代中,我都会得到一个承诺

我只想在所有迭代发生之后一起解决这些承诺

我不知道是否只有
diff12
或只有
diff21
或两者都在循环

我如何确保只解决那些存在的承诺

我是如何做到这一点的:

var diffPromises: Array<any> = [];

diff12.forEach(currstudent => {
    diffPromises.push(db.collection('users').doc(currstudent).set({
        progress: {
            special: 'special1'
        }
    }, {merge: true}))
})

diff21.forEach(currstudent => { 
    diffPromises.push(db.collection('users').doc(currstudent).set({
        progress: {
            special: 'special2'
                }
            }, {merge: true}))
        })
}

return Promise.all(diffPromises)
var-diffPromises:Array=[];
diff12.forEach(currstudent=>{
推送(db.collection('users').doc(currstudent).set({
进展:{
特别:“特别1”
}
},{merge:true})
})
diff21.forEach(currstudent=>{
推送(db.collection('users').doc(currstudent).set({
进展:{
特别:“特别2”
}
},{merge:true})
})
}
返回承诺。全部(不确定承诺)

只等待
diffpromissions
数组中的承诺。如果它们不在那里,它们就不重要了。我在编辑的时候就猜到了。最初,每个循环有两个数组,这给了我在
Promise.all()
中有两个数组的问题。然后我意识到不需要两个阵列。谢谢。只等待
diffpromissions
数组中的承诺。如果它们不在那里,它们就不重要了。我在编辑的时候就猜到了。最初,每个循环有两个数组,这给了我在
Promise.all()
中有两个数组的问题。然后我意识到不需要两个阵列。谢谢