我有一个Promise.all(),一旦完成,我不想转移到另一个功能。 问题是Promise.all()函数没有输入。
我在函数内部发出了警报,并且它不会触发。
当我尝试使用Promise.all()的foreach intead时,它会遍历所有文档,但在解析promise之前执行insertData()方法。
1 - 获取用户参考
2 - Promise.all()
3 - 完成后调用插入数据。
警报3显示大小为5.正确
警告doc2永远不会显示。
let userRef2 = firebase.firestore().collection("users").doc(participantID);
const result2 = await firebase.firestore().collection("recommendedVideo").where("user", "==", userRef2).get();
alert("3 "+result2.size);
await Promise.all(result2.map(async doc2 => {
alert(doc2);
//3 - Get video ref to compate to Array
const videoFef = doc2.data().video.id;
alert("videoFef "+videoFef);
const doc3 = await firebase.firestore().collection("videos").doc(videoFef).get();
if (!doc3.exists) {
alert("Não exisste doc videos");
return;
}
var sequence = doc3.data().sequenceNumberID;
for (var i = 0; i < newRec.length; i++) {
alert("5 ");
if (String(sequence) !== String(newRec[i])) return;
var index = newRec.indexOf(newRec[i]);
if (index > -1) newRec.splice(index, 1);
}
})).catch(function (error) {
alert(error);
})
// end of Promise.all
insertData(newRec);