我认为我理解了 async/await,但是我对代码中非常常见的场景中的部分感到困惑。
我有一个createOrder()
处理订单的异步函数。在该函数返回任何值之前,它需要执行另一个异步函数来发送电子邮件确认sendEmail()
。
我不想等待电子邮件发送后再将订单详细信息返回给客户。
所以我是这样处理的:
async function createOrder(){
try {
//Create the order object
const order = {
productid: 1234
name: "helpful text"
price: "55.00"
}
sendEmail(order); // I dont want to await this
return {
order // Client needs this ASAP without waiting for email to be sent
}
}
catch (e) {
console.error(e);
}
}
电子邮件功能发送邮件:
async function sendEmail(payload){
try {
await axios.post('/emailer/send', {
payload
});
}
catch(e){
console.error(e);
}
}
await
我的问题是,我的 IDE在调用该函数时给出了一个我未曾使用过的警告sendEmail()
。这只是一个建议,还是我的方法存在根本性错误?如果我错了,那么有什么更好的解决方法吗?
通常问题是,如果
sendEmail
失败,您会想要处理该异常。但在这种情况下,它sendEmail
本身就有一个 try catch,所以您应该没问题。除非里面还有更多
sendEmail
没有提到或说出来的逻辑,console.error
否则undefined
你是好的。