【发布时间】:2021-05-07 22:54:27
【问题描述】:
我有一个Promise.all(),它一个接一个地执行两个查询。在Promise.all() 的结果中,我想使用第二个查询的结果执行第三个查询。
我如何创建一个function(),以便在Promise() 中干净利落地使用?
Promise
.all([upsertDeviceId, createEndpoint])
.then((values) => {
const upsertDeviceIdResult = values[0];
const createEndpoint = values[1];
if(upsertDeviceIdResult.upsertedCount > 0){
//Perform third query here
//performThirdQuery(createEndpoint.EndpointArn);
}
return res.status(200).send({ success: true });
})
.catch((err) => {
console.log(err);
return res.status(400).send({ reason: 'unknown' });
});
});
我不知道如何才能听到第三个查询的结果和
返回return res.status(200).send({ success: true });
或者一个错误。
return res.status(500).send({ success: false});
function performThirdQuery(resultFromSecondQuery) {
const updateDeviceIdEndpointArn = db.collection('deviceids')
.updateOne(
{ device_id: deviceId },
{ $set: { device_endpoint_arn: deviceId } }
);
}
【问题讨论】:
-
“我有一个 Promise.all(),它一个接一个地执行两个查询” 这不是
Promise.all所做的。
标签: node.js express promise promise.all