等待发送数据,直到所有 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);
        });
});