-
Promise 객체 병렬처리Web Programming 2022. 9. 29. 18:25반응형
상황
서버에 파일을 비동기적으로 업로드하며 병렬 처리를 위해 Axios.all을 사용
문제
Axios.all을 활용 시 하나의 Promise만 Reject 되어도 정상적으로 응답이 돌아오지 않아 이후 로직 처리 불가
탐색방법
Case 1 : https://stackoverflow.com/questions/48681126/axios-all-spread-and-catch-all
- Axios.all 을 통해 발생한 Exception이 어느 Promise 객체에서 발생했는지 확인
but, 하나의 에러만 발생해도 전체 Promise가 동작을 중지하는 문제는 그대로
Case 2 : 각각의 Promise 객체에서 Error를 던져주는 방법
but, Error가 찍혀도 몇번째 Promise에서 발생하는 문제인지 확인 불가
해결방안
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
ECMA2020에서 추가된 문법으로 Promise 배열을 병렬적으로 처리하고 모든 Response를 Reject과 상관없이 배열에 저장하여 반환해줌
낮은 버전에서 Polyfill이 필요할까 우려되었으나 Mozilla에서 Full support 확인
반응형'Web Programming' 카테고리의 다른 글
FrontEnd의 관점으로 바라본 MVVM (0) 2024.01.10 Git Versioning 및 CHANGELOG.md 생성 자동화 (0) 2023.01.30 Z-Index (0) 2022.08.24 Multi-Tenancy의 개념 (0) 2022.06.27 재고 - 주문 프로세스에서의 동시성 제어 (0) 2022.01.26