3

Wenn Sie eine asynchrone Funktion erstellen, wird implizit immer eine Promise zurückgegeben.Typescript Async Rückgabe-/Wurffehler

Erstens, wenn eine async Funktion ist es tatsächlich ein Unterschied zwischen

Promise.reject(new Error(...)) Rückkehr vs throw new Error(...)

Sollten Sie einen über die andere verwenden aus anderen Gründen als die Konsistenz in der Code-Basis?


Zweitens, welchen Typ gibt es zurück?

Basiert auf VS Code Promise.reject(new Error(...)) gibt Promise<Never> zurück throw new Error(...) die gleiche Sache zurück?

Drittens, sollten Sie die Funktionstyp-Signatur in "Verspre- chen" ändern, wenn sie eine abgelehnte Versprechung zurückgeben kann? Gibt es einen abgelehnten Promise-Typ? Macht das überhaupt Sinn?

Danke.

+0

Bitte nur eine Frage stellen per Post – Bergi

+0

1) [sie die gleiche Sache sind] (https://StackOverflow.com/q/33445415/1048572) 2) 'throw' hat wahrscheinlich einen' void' Typ, aber es hat vielleicht überhaupt keinen, weil es eine Aussage ist, kein Ausdruck - das gleiche gilt für ' Rückkehr "3) Ja, es macht Sinn, aber TypeScript hat es nicht getan, weil sie dachten, es wäre zu kompliziert. – Bergi

+0

Siehe https://github.com/Microsoft/TypeScript/issues/7588 https://github.com/Microsoft/TypeScript/issues/6283 https://stackoverflow.com/questions/39381940/typescript-type-definition-for-price-reject – Bergi

Antwort

-3

dies hier versuchen ...

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

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

Und:

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

Demo

+0

Sind Sie sicher, dass Sie Ihre Antwort auf den richtigen Thread geschrieben haben? – Bergi

+0

Übrigens ist der 'Callback' in Ihrem' asyncFunc' Aufruf 'undefiniert'. – Bergi

Verwandte Themen