DEV Community

loading...
Cover image for JavaScript Interview Question #27: Handling errors in JavaScript Promise chains

JavaScript Interview Question #27: Handling errors in JavaScript Promise chains

Coderslang: Become a Software Engineer
Teaching you to code at js.coderslang.com - JavaScript, HTML, CSS, Node.js, React.js, React Native
Originally published at learn.coderslang.com on ・1 min read

js-test-27

Are there any differences between f1 and f2?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

If you're not sure what is a Promise in JS or how to use it, read these articles first:

There are two ways of providing error handlers to the JavaScript Promises.

The first one is shown in the function f1. We pass the errorHandler as a second argument to .then().

The second approach is implemented in f2. Here, we add the errorHandler using the .catch() function.

In both cases errorHandler will be called if the original promise is rejected.

If promise resolves successfully, then the execution continues in successHandler. And if successHandler throws the error, then it will only be handled by f2 and not f1.

This happens because of the internal implementation of .catch(). It handles all errors in the promise chain, including the ones inside of the .then() handlers.


ANSWER: Yes, there’s a big difference between f1 and f2. The former doesn’t handle the error in successHandler (if it appears) and the latter does.

Learn Full Stack JavaScript

Discussion (4)

Collapse
yodalightsabr profile image
YodaLightsabr

I had no clue that there was a way to only catch the first promise! This is amazing.

Collapse
hossamahmad profile image
Hossam Ahmad

So insightful .. thank you

Collapse
coderslang profile image
Forem Open with the Forem app