De then
methode geeft een Promise
die methode chaining mogelijk maakt.
als de functie als handler is doorgegeven aan then
geeft een Promise
, wordt een equivalent Promise
blootgesteld aan de volgende then
in de methodeketen. Het onderstaande fragment simuleert asynchrone code met de functie setTimeout
.,
wanneer een waarde wordt geretourneerd vanuit een then
handler, zal het effectief Promise.resolve(<value returned by whichever handler was called>)
retourneren.
een then
aanroep zal een geweigerde belofte retourneren als de functie een fout gooit of een geweigerde belofte retourneert.
in alle andere gevallen wordt een oplossingsbelofte geretourneerd. In het volgende voorbeeld geeft de eerste then()
42
verpakt in een oplossingsbelofte, hoewel de vorige belofte in de keten werd afgewezen.,
in de praktijk is het vaak wenselijk om afgewezen Beloften te vangen in plaats van then
’s twee gevallen syntaxis te gebruiken, zoals hieronder wordt aangetoond.
u kunt chaining ook gebruiken om een functie met een Promise-gebaseerde API bovenop een andere functie te implementeren.
als onFulfilled
een belofte retourneert, wordt de retourwaarde van then
opgelost/afgewezen door de belofte.