等待发送数据,直到所有 Promise 都已解决
Wait to send data until all Promises are resolved
我正在尝试查询我的数据库两次。我能够记录我想要的数据,但我无法发送该数据,因为承诺没有及时解决。我想知道如何做到这一点,以便在发送数据之前等到所有承诺都得到解决。感谢您的帮助。
app.get("/organizations/:slug_id/:category_id", function(req, res, next) {
queries.getAllProducts(req.params.category_id)
.then(function(result) {
return result.map(function(obj) {
queries.getAllProductsImages(obj.product_id)
.then(function(images) {
obj["images"] = images;
return obj;
})
})
})
.then(function(products) {
res.status(200).json(products)
})
.catch(function(error) {
next(error);
});
});
试试这个
app.get("/organizations/:slug_id/:category_id", function (req, res, next) {
queries.getAllProducts(req.params.category_id)
.then(function (result) {
return Promise.all(result.map(function (obj) {
return queries.getAllProductsImages(obj.product_id)
.then(function (images) {
obj["images"] = images;
return obj;
});
}));
})
.then(function (products) {
res.status(200).json(products)
})
.catch(function (error) {
next(error);
});
});
我正在尝试查询我的数据库两次。我能够记录我想要的数据,但我无法发送该数据,因为承诺没有及时解决。我想知道如何做到这一点,以便在发送数据之前等到所有承诺都得到解决。感谢您的帮助。
app.get("/organizations/:slug_id/:category_id", function(req, res, next) {
queries.getAllProducts(req.params.category_id)
.then(function(result) {
return result.map(function(obj) {
queries.getAllProductsImages(obj.product_id)
.then(function(images) {
obj["images"] = images;
return obj;
})
})
})
.then(function(products) {
res.status(200).json(products)
})
.catch(function(error) {
next(error);
});
});
试试这个
app.get("/organizations/:slug_id/:category_id", function (req, res, next) {
queries.getAllProducts(req.params.category_id)
.then(function (result) {
return Promise.all(result.map(function (obj) {
return queries.getAllProductsImages(obj.product_id)
.then(function (images) {
obj["images"] = images;
return obj;
});
}));
})
.then(function (products) {
res.status(200).json(products)
})
.catch(function (error) {
next(error);
});
});