metoda then
returnează un Promise
care permite înlănțuirea metodei.
Dacă funcția trecut ca handler then
returnează un Promise
, un echivalent Promise
va fi expus ulterior then
în metoda în lanț. Fragmentul de mai jos simulează codul asincron cu funcția setTimeout
.,
atunci Când o valoare este returnată dintr-un then
handler, în mod eficient a reveni Promise.resolve(<value returned by whichever handler was called>)
.
a then
apelul va returna o promisiune respinsă dacă funcția aruncă o eroare sau returnează o promisiune respinsă.în toate celelalte cazuri, o promisiune de rezolvare este returnată. În următorul exemplu, primul then()
va reveni 42
înfășurat într-o rezolvare a Promis chiar dacă anterior Promisiunea în lanț a fost respinsă.,
în practică, este adesea de dorit să capturați promisiunile respinse, mai degrabă decât să folosiți sintaxa then
a celor două cazuri, după cum se demonstrează mai jos.de asemenea, puteți utiliza înlănțuirea pentru a implementa o funcție cu un API bazat pe promisiuni pe lângă o altă astfel de funcție.
Dacă onFulfilled
returnează o promisiune, valoarea de returnare a then
vor fi rezolvate/respinse de promisiune.