Promise.all没有进入

时间:2018-05-21 13:03:16

标签: javascript

我有一个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);

0 个答案:

没有答案