Promise all

김선우·2022년 6월 27일
0

Posting

목록 보기
40/60

promisall 을 이야기 하기전에 잠시 async, await 를 짚고 넘어가자.

사진의 코드는 여러 비동기 로직이 async-await 를 통해 순차적으로 실행되는 모습이다.

비동기 로직 제어에 어느정도 성공했지만, 순차적으로 실행되는 7회의 post요청으로 시간이 많이 소비된다.

이러한 문제를 해결하기 위해 나온 것이 promise.all 이다.

기존의 async-await는 직역한 뜻과 같이 비동기 동작이 완료될 때 까지 기다린 후 다음코드를 순차적으로 실행하라는 의미이다.

바꿔 말하면, 로직의 순서가 중요할 때는 분명 메리트 있는 방법이지만, 로직의 순서가 상관없는 과정이라면 시간만 더 잡아먹는 코드가 될 것이 분명하다.

promise.all 은 여러가지 비동기 로직을 병렬적으로 실행하고, 마지막 로직이 끝날 때 완료 상태의 프라미스를 반환한다.

여러 로직중 가장 오래걸리는 로직이 3초가량 소요된다고 치면, 모든 로직을 실행하는 데에 3초남짓한 시간 뿐이 걸리지 않는다는 말이다.

앞서 async-await 가 로직의 순서가 중요하다면 메리트있는 방법이라고한 것을 바꿔말하면,

promise.all 은 로직의 순서가 중요한 경우에는 절대 사용하지 말아야 할 메소드이다.

profile
생각은 나중에..

0개의 댓글