๐ย Reference
๐ย Chapter
Promise๋ค์ ๋ฐฐ์ด๋ก ๋ด์ Promise.all์ ์ธ์๋ก ์ ๋ฌํ๋ฉด ๋ฐฐ์ด์ ์๋ ๋ชจ๋ Promise๋ค์ด ๊ฑฐ์ ๋์์ ํธ๋ฆฌ๊ฑฐ ๋๋ค.์์ 1
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'foo1');
});
const promise4 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'foo2');
});
Promise.all(
[promise1, promise2, promise3, promise4]).then((values) => {
console.log(values);
});
//output: Array [3, 42, "foo1","foo2"]
Promise.all()์ ์ฌ์ฉํ ๋ ์ฃผ์ํด์ผํ ์ ์ ๋ฐฐ์ด ๋ด ์์ ์ค ์ด๋ ํ๋๋ผ๋ ๊ฑฐ๋ถํ๋ฉด ์ฆ์ ๊ฑฐ๋ถํ๋ค๋ ๊ฒ์ด๋ค.์์ 2
var p1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('ํ๋'), 1000);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('๋'), 2000);
});
var p3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('์
'), 3000);
});
var p4 = new Promise((resolve, reject) => {
setTimeout(() => resolve('๋ท'), 4000);
});
var p5 = new Promise((resolve, reject) => {
reject(new Error('๊ฑฐ๋ถ'));
});
// .catch ์ฌ์ฉ:
Promise.all([p1, p2, p3, p4, p5])
.then(values => {
console.log(values);
})
.catch(error => {
console.log(error.message)
});
// ์ฝ์ ์ถ๋ ฅ๊ฐ:
// "๊ฑฐ๋ถ"
์์ 3
var p1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('p1_์ง์ฐ_์ดํ'), 1000);
});
var p2 = new Promise((resolve, reject) => {
reject(new Error('p2_์ฆ์_๊ฑฐ๋ถ'));
});
Promise.all([
p1.catch(error => { return error }),
p2.catch(error => { return error }),
]).then(values => {
console.log(values[0]) // "p1_์ง์ฐ_์ดํ"
console.log(values[1]) // "Error: p2_์ฆ์_๊ฑฐ๋ถ"
})
.catch()๋ฅผ ์ด์ฉํ์ฌ ๋ฏธ๋ฆฌ ์ฒ๋ฆฌ ํ์๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ ๋ฐฐ์ด์ p1์ ๊ฒฐ๊ณผ์ p2์ error ๋ด์ฉ์ด ๋ด๊ธฐ๊ฒ ๋ ๊ฒ์ด๋ค.