function p1() {
return new Promise((resolve, reject) => {
setTimeout(() => reject("Error in p1"), 1000);
}).catch((error) => {
console.error(error);
})
}
function p2() {
return new Promise((resolve) => {
setTimeout(() => resolve("p2 resolved"), 1000);
});
}
function pAll() {
Promise.all([p2(), p1()])
.then((results) => {
console.log("All data resolved:", results);
})
.catch((error) => {
console.error("Error resolving data:", error);
});
}
pAll();
function p1() {
return new Promise((resolve, reject) => {
setTimeout(() => reject("Error in p1"), 1000);
}).catch((error) => {
console.error(error);
})
}
function p2() {
return new Promise((resolve) => {
setTimeout(() => resolve("p2 resolved"), 1000);
});
}
function pAll() {
Promise.all([p2(), p1()])
.then((results) => {
console.log("All data resolved:", results);
})
.catch((error) => {
console.error("Error resolving data:", error);
});
}
pAll();
First, Error in p1 is logged, then [ 'p2 resolved', undefined ] is logged. Since p1 catches the rejection, it doesn’t propagate to the Promise.all catch handler allowing p2 to resolve. But, since p1 doesn’t return anything, its result is undefined.