AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Promise.all(): 사라진 참치의 사건

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • 초보 JavaScript 개발자비동기 프로그래밍 학습자
  • 중간 난이도 (Promise 기초 지식 필요)

핵심 요약

  • Promise.all()다수의 비동기 작업을 병렬로 실행하고 모든 결과를 배열로 반환하는 함수입니다.
  • 하나의 Promise가 실패하면 전체 작업이 실패하여 처리가 중단됩니다.
  • Promise.all()모든 결과가 필요한 경우 (예: 모든 데이터 수집 후 처리)에 적합합니다.

섹션별 세부 요약

1. 사건 개요

  • 사건: 참치가 사라진 사건을 조사하는 Oreo 경찰의 활동
  • 비동기 작업: 발자국 분석, 냄새 추적, 감시 영상 분석 3가지 작업
  • 문제: 각 작업이 별도로 실행되며 시간이 많이 소요됨

2. `Promise.all()` 활용 예시

  • 코드 구조:

```javascript

Promise.all([

getPawprintAnalysis(),

getScentTrailReport(),

getSurveillanceFootage()

]).then(results => { ... });

```

  • 기능:

- 모든 Promise를 병렬로 실행

- 결과는 배열로 반환 (예: ["Pawprints match: Garfield", ...])

- 하나의 실패로 전체 실패 (예: reject("Camera offline!") 발생 시)

3. 실패 처리 예시

  • 실패 시점: 감시 카메라가 라쿤의 악의적 행동으로 인해 비활성화
  • 에러 핸들링:

```javascript

Promise.all([...]).catch(error => {

console.error("Investigation failed:", error);

});

```

  • 결과: 모든 작업 중단 후 재조사 시도

4. `Promise.all()` 기능 요약

| 기능 | 설명 |

|------|------|

| 목적 | 병렬 실행 |

| 결과 | 모든 결과 배열 반환 |

| 실패 | 하나라도 실패 시 전체 실패 |

| 적합한 상황 | 모든 결과가 필수적인 경우 |

결론

  • Promise.all()모든 비동기 작업 결과를 동시에 필요로 할 때 사용하세요.
  • 실패 시 전체 중단을 고려해 에러 처리 로직(.catch())을 반드시 포함하세요.
  • 예: Promise.all([fetch1(), fetch2()]).then(results => processAll(results))