Acho que entendi async/await, mas estou confuso com uma parte que alcancei no meu código em um cenário muito comum.
Tenho uma função async createOrder()
que processa pedidos. Antes que essa função retorne quaisquer valores, ela precisa executar outra função async para enviar confirmação por e-mail sendEmail()
.
Não quero esperar o e-mail ser enviado para retornar os detalhes do pedido ao cliente.
Então foi assim que eu fiz:
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);
}
}
A função de e-mail envia o e-mail:
async function sendEmail(payload){
try {
await axios.post('/emailer/send', {
payload
});
}
catch(e){
console.error(e);
}
}
Minha pergunta é que meu IDE me dá um aviso que eu não usei await
ao chamar a sendEmail()
função. É apenas uma sugestão ou há algo fundamentalmente errado com minha abordagem? Se eu estiver errado, então qual é a melhor maneira de fazer isso?