Promise 병렬 처리 타임라인
여러 Promise를 동시에 시작해도 all과 race는 완료 조건이 다르므로 실패와 첫 응답을 읽는 기준이 달라진다.
| 도구 | 완료 기준 | 실패 기준 | 사용할 때 |
|---|---|---|---|
| Promise.all | 모두 fulfilled | 하나라도 rejected면 rejected | 전체 결과가 모두 필요 |
| Promise.allSettled | 모두 settled | 실패도 결과로 담음 | 성공/실패를 각각 보여줌 |
| Promise.race | 가장 먼저 settled | 첫 실패도 결과가 됨 | timeout 경쟁 |
| Promise.any | 가장 먼저 fulfilled | 모두 실패해야 rejected | 대체 서버 중 빠른 성공 |
| Parallel start | Promise를 먼저 만들어 동시에 실행 | 순차 await와 구분 | 불필요하게 직렬 처리하지 않음 |
Promise 병렬 처리는 동시에 시작하는 것과 어떤 조건으로 끝났다고 볼 것인지를 나누어 읽어야 한다.