What will be the order of the following code:
Promise.resolve(1) .then((val) => { console.log(val); return val + 1; }) .then((val) => { console.log(val); }) .then((val) => { console.log(val); return Promise.resolve(3).then((val) => { console.log(val); }); }) .then((val) => { console.log(val); return Promise.reject(4); }) .catch((val) => { console.log(val); }) .finally((val) => { console.log(val); return 10; }) .then((val) => { console.log(val); });
Select one of the following:
1 2 undefined 3 undefined 4 undefined undefined
Here's why:
1
- First promise resolves with 12
- Second .then gets 1+1undefined
- Third .then gets undefined (since previous .then had no return)3
- From the nested Promise.resolve(3)undefined
- Next .then gets undefined (nested promise had no return)4
- From Promise.reject(4) caught in catchundefined
- From finally (finally always receives undefined)undefined
- Last .then gets undefined (finally's return value is ignored)Key points:
undefined
undefined
and its return value is ignoredPromise.resolve(1)
.then((val) => {
console.log(val);
return val + 1;
})
.then((val) => {
console.log(val);
})
.then((val) => {
console.log(val);
return Promise.resolve(3).then((val) => {
console.log(val);
});
})
.then((val) => {
console.log(val);
return Promise.reject(4);
})
.catch((val) => {
console.log(val);
})
.finally((val) => {
console.log(val);
return 10;
})
.then((val) => {
console.log(val);
});
1
2
undefined
3
undefined
4
undefined
undefined