then
metode returnerer en Promise
, som giver mulighed for metode kæde.
Hvis den funktion, der er bestået som handler til then
returnerer en Promise
, en tilsvarende Promise
vil blive udsat for den efterfølgende then
i den metode kæde. Nedenstående uddrag simulerer asynkron kode med funktionen setTimeout
.,
Når en værdi returneres inden for en then
handler, vil den effektivt returnere Promise.resolve(<value returned by whichever handler was called>)
.
A then
opkald returnerer et afvist løfte, hvis funktionen kaster en fejl eller returnerer et afvist løfte.
i alle andre tilfælde returneres et løsende løfte. I det følgende eksempel vender den første then()
tilbage 42
indpakket i et løsende løfte, selvom det forrige løfte i kæden blev afvist.,
i praksis er det ofte ønskeligt at fange afviste løfter snarere end at bruge then
‘s to case syntaks, som vist nedenfor.
Du kan også bruge chaining til at implementere en funktion med et løfte-baseret API oven på en anden sådan funktion.
Hvis onFulfilled
returnerer et løfte, vil returværdien afthen
blive løst / afvist af løftet.