then
Methode gibt ein Promise
, die ermöglicht die Verkettung von Methoden.
Wenn die als Handler an then
übergebene Funktion eine Promise
zurückgibt, wird eine äquivalente Promise
der nachfolgenden then
in der Methodenkette ausgesetzt. Das folgende Snippet simuliert asynchronen Code mit der Funktion setTimeout
.,
Wenn ein Wert innerhalb eines then
– Handlers zurückgegeben wird, wird Promise.resolve(<value returned by whichever handler was called>)
effektiv zurückgegeben.
Einthen
Aufruf gibt ein abgelehntes Versprechen zurück, wenn die Funktion einen Fehler auslöst oder ein abgelehntes Versprechen zurückgibt.
In allen anderen Fällen wird ein Auflösungsversprechen zurückgegeben. Im folgenden Beispiel gibt die erste then()
42
zurück, die in ein Auflösungsversprechen eingeschlossen ist, obwohl das vorherige Versprechen in der Kette abgelehnt wurde.,
In der Praxis ist es oft wünschenswert, abgelehnte Versprechen abzufangen, anstatt die Syntax für zwei Fälle von then
zu verwenden, wie unten gezeigt.
Sie können auch die Verkettung verwenden, um eine Funktion mit einer Promise-basierten API über einer anderen solchen Funktion zu implementieren.
Wenn onFulfilled
ein Versprechen zurückgibt, wird der Rückgabewert von then
durch das Versprechen aufgelöst/abgelehnt.