tilbage til lektionen

Promise: then versus catch

Er disse to fragmenter af kode ens? Med andre ord, gør de det samme i enhver sammenhæng, for enhver handler funktion?

promise.then(f1).catch(f2);

Versus:

promise.then(f1, f2);

Det korte svar er: nej, de er ikke ens:

Forskellen er, at hvis en fejl opstår i f1, så håndteres den af .catch her:

promise
  .then(f1)
  .catch(f2);

… men ikke her:

promise
  .then(f1, f2);

Det er fordi at fejl bliver sendt ned gennem kæden, og i det andet kodeeksempel er der ingen kæde under f1.

Med andre ord, .then sender resultater/fejl videre til den næste .then/catch. Så i det første eksempel er der en catch nedenfor, og i det andet er der ikke, så fejlen håndteres ikke.