我有一个一个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 } }
);
}