Lorsque vous effectuez une fonction asynchrone, elle renvoie implicitement toujours une promesse.Erreurs de retour/lancement asynchrones de typeScript
Tout d'abord, lorsque vous utilisez une fonction async
est-il vraiment une différence entre le retour
Promise.reject(new Error(...))
vs throw new Error(...)
Si vous utilisez un sur l'autre pour des raisons autres que la cohérence dans la base de code?
En second lieu, quel type faut-il revenir?
Basé sur VS Code Promise.reject(new Error(...))
renvoie un Promise<Never>
throw new Error(...)
renvoie la même chose? Troisièmement, si vous changez la fonction type signature en Promise dans le cas où il peut retourner une promesse rejetée? Y a-t-il un type Promise rejeté? Cela a-t-il même un sens?
Merci.
S'il vous plaît demander à une seule question par poste – Bergi
1) [ils sont la même chose] (https://stackoverflow.com/q/33445415/1048572) 2) 'throw' a probablement un type' void', mais il peut ne pas en avoir du tout parce que c'est une déclaration pas une expression - la même chose est vraie pour ' retour' 3) Oui, ça a du sens, mais TypeScript ne l'a pas fait parce qu'ils pensaient que ce serait trop compliqué – Bergi
Voir https://github.com/Microsoft/TypeScript/issues/7588 https://github.com/Microsoft/TypeScript/issues/6283 https://stackoverflow.com/questions/39381940/typescript-type-definition-for-promise-reject – Bergi