[英]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.