Promise.all() - JavaScript | MDN
Promise.all
는 거부되고, 나머지 프라미스의 결과는 무시된다.Promise.all
에 전달되는 프라미스 중 하나라도 거부되면, Promise.all
이 반환하는 프라미스는 에러와 함께 바로 거부된다.Promise.all([
new Promise((resolve, reject) => setTimeout(() => resolve(1), 1000)),
new Promise((resolve, reject) => setTimeout(() => reject(new Error("에러 발생!")), 2000)),
new Promise((resolve, reject) => setTimeout(() => resolve(3), 3000))
]).catch(alert); // Error: 에러 발생!
Promise.all([
new Promise(resolve => setTimeout(() => resolve(1), 3000)), // 1
new Promise(resolve => setTimeout(() => resolve(2), 2000)), // 2
new Promise(resolve => setTimeout(() => resolve(3), 1000)) // 3
]).then(alert); // [1, 2, 3] 각 Promise의 위치배열로 알맞은 index에 각각의 결과값이 반환된다.
//예) 첫번째 자리는 promise 1의 결과값이 들어간다.
Promise.all([
new Promise((resolve, reject) => {
setTimeout(() => resolve(1), 1000)
}),
2,
3
]).then(alert); // 1, 2, 3
//Promise 가 아닌 일반값을 넣으면 그대로 해당 index의 위치로 값이 도출된다.