자바스크립트 Promise.all() 메소드 이해하기
Promise
자바스크립트 Promise는 비동기 작업을 다룰 때 사용됩니다. Promise는 두 가지 상태, 즉 “대기(pending)”와 “이행(fulfilled)” 또는 “거부(rejected)”를 가집니다. 작업이 완료되면 Promise는 이행 상태가 되고 작업이 실패하면 거부됩니다.
const myPromise = new Promise((resolve, reject) => {
// 작업 수행
if (/* 작업 완료 */) {
resolve(result); // 작업이 이행됨
} else {
reject(error); // 작업이 거부됨
}
});
Promise.all()
Promise.all() 메소드는 여러 개의 프로미스 객체를 인자로 받아, 모든 프로미스가 이행된 다음 이행 결과를 배열로 반환합니다. 만약 인자로 받은 프로미스 중 하나라도 거부된다면, Promise.all()을 호출한 프로미스도 거부됩니다.
const promise1 = Promise.resolve(1);
const promise2 = Promise.resolve(2);
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 3000, 3);
});
Promise.all([promise1, promise2, promise3]).then(values => console.log(values));
// 출력값: [1, 2, 3]
Promise.all() 사용 시 주의할 점
Promise.all() 메소드를 사용할 때는 주의해야 할 점이 있습니다. 인자로 받은 프로미스 중 하나라도 오랜 시간이 걸리는 비동기 작업이라면, Promise.all()은 그 작업이 완료될 때까지 기다려야 합니다.
결론
Promise.all() 메소드는 여러 개의 프로미스 객체를 처리하는 데 유용합니다. 이를 통해 우리는 복잡한 비동기 작업을 다룰 수 있게 됩니다.
자바스크립트 Promise.all() 메소드를 이용하여 비동기 작업의 결과를 모으세요.