then
– metoden returnerar en Promise
som tillåter metod kedja.
om funktionen skickas som hanterare tillthen
returnerar enPromise
, kommer en motsvarandePromise
att exponeras för den efterföljandethen
I metodkedjan. Nedanstående utdrag simulerar asynkron kod med funktionen setTimeout
.,
När ett värde returneras inifrån en then
hanterare, kommer det effektivt tillbaka Promise.resolve(<value returned by whichever handler was called>)
.
athen
samtal kommer att returnera ett avvisat löfte om funktionen kastar ett fel eller returnerar ett avvisat löfte.
i alla andra fall returneras ett lösningslöfte. I följande exempel kommer den första then()
att returnera 42
insvept i ett lösningslöfte trots att det tidigare löftet i kedjan avvisades.,
i praktiken är det ofta önskvärt att fånga avvisade löften snarare än att använda then
s tvåfallssyntax, vilket visas nedan.
Du kan också använda kedja för att implementera en funktion med ett Promise-baserat API ovanpå en annan sådan funktion.
omonFulfilled
returnerar ett löfte, kommer returvärdet förthen
att lösas / avvisas av löftet.