繁体   English   中英

当列表为空时,nodjs 中的 app.get function 超时

[英]Timeout in app.get function in nodjs when list is empty

我是nodejs的新手,如果这个问题对你来说似乎很愚蠢,请原谅我

当我测试这个 function 并且两个列表都是空的时我得到一个超时

=> 当我没有什么可显示并且我需要返回 RmissionInProgress 和 SmissionInProgress 为空时

但是当我在任何列表中有一项时,它可以工作=> SmissionInProgress 或 RmissionInProgress 中的一项=> 我有一个返回的结果

    app.get('/driver/missions/all', isAuthenticated, (req, res) => {
    let language = usedLanguage(req.headers.language);
    let token = req.headers.token;
    let driverRef = req.body.driverRef;
    let SmissionInProgress = [];
    let RmissionInProgress = [];
    let count = 0;
    let driverId;

    let bar = new Promise((resolve, reject) => {

        db.collection('driverMissions').where('acceptedBy', '==', driverRef).get().then((snapshot) => {
            if (snapshot.size > 0) {
                snapshot.docs.forEach((doc) => {
                    doc.data().missionId.get().then((snap) => {
                        doc.data().idDriver.get().then((driverData) => {
                            let missionDetails = {
                                id: snap.id,
                                arrivalPosition: snap.data().arrivalPosition,
                                clientName: snap.data().clientName
                            }
                            RmissionInProgress.push(missionDetails);

                            if (count === snapshot.docs.length - 1) resolve();
                            count++;
                        })
                    });
                });
            }
        }).catch((error) => {
            console.log(error);
            res.status(500).json({
                message: languages.translate(language, "serverError")
            });
        });


        db.collection('driverMissions').where('idDriver', '==', driverRef).get().then((snapshot) => {
            console.log("done here 2");
            if (snapshot.size > 0) {

                snapshot.docs.forEach((doc) => {
                    doc.data().missionId.get().then((snap) => {
                        if ((["crée", "en attente", "expirée"].includes(snap.data().status)) || (snap.data().status === "annulée" && !doc.data().acceptedBy)) {
                            let missionDetails = {
                                id: snap.id,
                                arrivalPosition: snap.data().arrivalPosition,
                                clientName: snap.data().clientName,

                            }
                            SmissionInProgress.push(missionDetails);

                        }
                    });
                });
            }
        }).catch((error) => {
            console.log(error);
            res.status(500).json({
                message: languages.translate(language, "serverError")
            });
        });

    }).catch((error) => {
        console.log(error);
        res.status(500).json({
            message: languages.translate(language, "serverError")
        });
    });
});

bar.then(() => {
return res.status(200).json({
    data: {
        SmissionInProgress,
        RmissionInProgress
    }
});    
});
});

 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM