[typescript] `Promise.all()` 메소드를 사용하여 프로미스 체이닝을 병렬로 처리할 수 있나요?
Promise.all()
메소드는 여러 개의 프로미스를 인자로 받아 이들이 모두 이행될 때까지 기다린 후 모든 프로미스가 이행된 값을 배열로 반환합니다. 이때 개별 프로미스들은 병렬로 처리됩니다. 따라서, 각각의 프로미스가 서로 의존하지 않는다면, 병렬로 처리하여 전체 소요 시간을 단축할 수 있습니다.
다음은 Promise.all()
을 사용하여 프로미스 체이닝을 병렬로 처리하는 예제 코드입니다.
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('First promise resolved');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Second promise resolved');
}, 500);
});
Promise.all([promise1, promise2]).then((results) => {
console.log(results);
// ["First promise resolved", "Second promise resolved"]
}).catch((error) => {
console.error(error);
});
위의 코드에서는 promise1
과 promise2
가 병렬로 처리되고, 두 프로미스가 모두 이행될 때까지 기다린 후 결과를 반환합니다.
따라서, Promise.all()
메소드를 사용하면 병렬로 처리할 수 있으며, 개별 프로미스의 이행 여부와 관계없이 모든 프로미스가 이행된 값들을 얻을 수 있습니다.
참고 자료: