Il metodo then
restituisce un Promise
che consente il concatenamento del metodo.
Se la funzione passata come gestore athen
restituisce unPromise
, unPromise
equivalente verrà esposto al successivothen
nella catena del metodo. Lo snippet seguente simula il codice asincrono con la funzionesetTimeout
.,
Quando un valore viene restituito da un gestorethen
, restituirà effettivamentePromise.resolve(<value returned by whichever handler was called>)
.
A then
call restituirà una promessa rifiutata se la funzione genera un errore o restituisce una promessa rifiutata.
In tutti gli altri casi, viene restituita una Promessa di risoluzione. Nell’esempio seguente, il primo then()
restituirà 42
avvolto in una Promessa di risoluzione anche se la promessa precedente nella catena è stata rifiutata.,
In pratica, è spesso desiderabile catturare le promesse rifiutate piuttosto che usare la sintassi dei due casi di then
, come dimostrato di seguito.
È inoltre possibile utilizzare il concatenamento per implementare una funzione con un’API basata su promesse su un’altra funzione di questo tipo.
SeonFulfilled
restituisce una promessa, il valore restituito dithen
verrà risolto / rifiutato dalla promessa.