JavaScript · Senior · Frage 50 von 75
Warum sollte man keine async-Funktion als Executor in new Promise(async (resolve) => ...) übergeben?
- 1Ein Fehler nach
awaitlehnt das Promise nicht ab - es hängt - 2Es funktioniert, aber Executor und Promise laufen doppelt
- 3Der Konstruktor
Promisewirft bei jeder async-Funktion einenTypeError
Antwort zeigen
Richtige Antwort: Ein Fehler nach await lehnt das Promise nicht ab - es hängt
Erklärung
Der Konstruktor ignoriert das Promise, das ein async-Executor liefert, also wird eine Exception nach await zu einer unbehandelten Ablehnung, und das äußere Promise bleibt pending. Gibt es darin schon ein await, braucht man den Wrapper new Promise meist gar nicht - eine async-Funktion genügt.