Le then
méthode renvoie un Promise
qui permet le chaînage de méthode.
Si la fonction passée en tant que gestionnaire de then
retourne un Promise
, un Promise
sera exposée pour la suite then
dans la méthode de la chaîne. L’extrait ci-dessous simule du code asynchrone avec la fonction setTimeout
.,
lorsqu’une valeur est renvoyée depuis un gestionnairethen
, il renvoie effectivementPromise.resolve(<value returned by whichever handler was called>)
.
un appelthen
renverra une promesse rejetée si la fonction génère une erreur ou renvoie une promesse rejetée.
dans tous les autres cas, une promesse de résolution est renvoyée. Dans l’exemple suivant, le premier then()
retournera 42
enveloppé dans une promesse de résolution même si la promesse précédente dans la chaîne a été rejetée.,
en pratique, il est souvent souhaitable d’attraper les promesses rejetées plutôt que d’utiliser la syntaxe à deux cas dethen
, comme démontré ci-dessous.
Vous pouvez également utiliser le chaînage pour implémenter une fonction avec une API basée sur des promesses en plus d’une autre fonction de ce type.
Si onFulfilled
renvoie une promesse, la valeur de retour de then
sera résolu, rejetée par la promesse.