我希望合并两个查询的结果,然后将它们作为一个返回,如下所示:
test: async (req, res) => {
const valOne = TableOne.find({ id: id })
.exec((err, result) => {
if (err) {
res.serverError(err);
}
return result;
});
const valTwo = TableTwo.find({ id: id })
.exec((err, result) => {
if (err) {
res.serverError(err);
}
return result;
});
const data = {
keyOne: valOne,
keyTwo: valTwo,
};
res.json(data);
} 我理解上面的代码不会返回,因为它是异步的。我怎样才能做到这一点?
发布于 2018-03-09 09:57:47
您提供的信息不多:节点版本、sails版本等等。
这里有几种方法: 1.使用承诺2.使用回调链3.使用等待/异步
如果您使用SAILS1.0和节点>= 8,最好的选择是使用等待/异步,所以您的代码应该这样工作:
test: async (req, res) => {
let valOne, valTwo;
try {
valOne = await TableOne.find({ id: id });
valTwo = await TableTwo.find({ id: id });
} catch (err) {
return res.serverError(err); //or res.badRequest(err);
}
const data = {
keyOne: valOne,
keyTwo: valTwo,
};
res.json(data);
}https://stackoverflow.com/questions/49189396
复制相似问题