3

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.

+0

S'il vous plaît demander à une seule question par poste – Bergi

+0

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

+0

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

Répondre

-3

Ici, essayez ceci ...

function asyncFunc(callback,delay){setTimeout(callback,delay);} 

function myFunction(param){ 
    alert(param); 
} 

Et ceci:

<button onclick="asyncFunc(myFunction(this.innerHTML),0);">click</button> 

Demo

+0

Etes-vous sûr de avoir posté votre réponse sur le bon fil de discussion? – Bergi

+0

Btw, le 'callback' de votre appel' asyncFunc' est 'undefined'. – Bergi