Promise: then versus catch
Are these code fragments equal? In other words, do they behave the same way in any circumstances, for any handler functions?
promise.then(f1).catch(f2);
Versus:
promise.then(f1, f2);
The short answer is: no, they are not the equal:
The difference is that if an error happens in f1, then it is handled by .catch here:
promise
.then(f1)
.catch(f2);
â¦But not here:
promise
.then(f1, f2);
Thatâs because an error is passed down the chain, and in the second code piece thereâs no chain below f1.
In other words, .then passes results/errors to the next .then/catch. So in the first example, thereâs a catch below, and in the second one â there isnât, so the error is unhandled.