metoda then
vrací Promise
, která umožňuje způsob řetězení.
Pokud je funkci předán jako handler na then
vrací Promise
, což je ekvivalent Promise
budou vystaveny následující then
v metodě řetězce. Níže uvedený úryvek simuluje asynchronní kód s funkcí setTimeout
.,
je-li hodnota vrácena zevnitř then
handler, bude účinně vrátit Promise.resolve(<value returned by whichever handler was called>)
.
athen
volání vrátí odmítnutý slib, pokud funkce vyvolá chybu nebo vrátí odmítnutý slib.
ve všech ostatních případech je vrácen slib řešení. V následujícím příkladu, první then()
vrátí 42
zabalené v řešení Slib, i když předchozí Slib, že v řetězci byla zamítnuta.,
v praxi je často žádoucí zachytit odmítnuté sliby spíše než použítthen
‚s two case syntaxe, jak je ukázáno níže.
řetězení můžete také použít k implementaci jedné funkce s API založeným na slibu nad jinou takovou funkcí.
Pokud onFulfilled
vrátí slib, návratová hodnota then
bude vyřešen/odmítnut slib.