then
metoden returnerer en Promise
som gjør det mulig for metoden kjeding.
Hvis funksjonen gått som fører til then
returnerer en Promise
et tilsvarende Promise
vil bli utsatt til påfølgende then
i metode-kjeden. Nedenfor kodebiten simulerer asynkron koden med setTimeout
funksjon.,
Når en verdi er returnert fra innenfor en then
handler, det vil effektivt retur Promise.resolve(<value returned by whichever handler was called>)
.
En then
anrop vil returnere en avvist løfte om funksjonen kaster en feil eller returnerer en avvist Lover.
I alle andre tilfeller kan en løse Løftet er returnert. I følgende eksempel, den første then()
vil gå tilbake 42
innpakket i et løse Lover, selv om de tidligere Lover i kjeden ble avvist.,
I praksis er det ofte ønskelig å fange avvist lover heller enn å bruke then
‘s to case-syntaks, som vist nedenfor.
Du kan også bruke kjeding å implementere en funksjon med et Løfte-basert API på toppen av en annen slik funksjon.
Hvis onFulfilled
returnerer et løfte, vil returverdien av then
vil bli vedtatt/avvist av løftet.