J'utilise async/await
dans mon projet Node.js. Et dans certains endroits, je dois retourner une erreur de la fonction async
. Si j'avais utilisé des promesses, j'aurais pu le faire de cette façon:
function promiseFunc() {
return new Promise((res, rej) => {
return rej(new Error('some error'))
})
}
Mais j'utilise la fonction async
, donc aucune méthode res
et rej
n'est là. Donc, la question: puis-je throw
des erreurs dans les fonctions async
? Ou est-ce considéré comme une bonne/mauvaise pratique?
Un exemple de ce que je veux faire:
async function asyncFunc() {
throw new Error('some another error')
}
Je peux aussi le réécrire de cette façon:
async function anotherAsyncFunc() {
return Promise.reject(new Error('we need more errors!'))
}
mais le premier me semble plus clair et je ne sais pas lequel utiliser.
Je ferais:
async function asyncFunc() {
try {
await somePromise();
} catch (error) {
throw new Error(error);
}
}
Mais je pense qu'il s'agit de préférence personnelle, je suppose? Vous pouvez toujours renvoyer Promise.reject(new Error(error));
.