JS

프로미스 번외

2024. 8. 29. 14:06

자바스크립트의 비동기 방식 'Promise'의 번외 기능들 정리.

 

Promise.race() 

프로미스 경마

  • race 안에 프로미스로만 구성된 배열을 넣어서 가장 빨리 완료된 프로미스 하나만 리턴
Promise.race([getPosition(), setTimer(1000)]).then((data) => {
  console.log(data);  // 먼저 완료된 setTimer의 data 출력
});

setTimer가 먼저 완료되어서 해당 프로미스 결과만 리턴됨

 

 

 

 

Promise.all()

  • all 안에 프로미스 배열을 넣어서 모두 완료한 뒤에 각 프로미스의 리턴값들을 배열로 리턴
  • 프로미스들 중 하나라도 에러가 발생하면 에러 처리 블록(then 두번째 인자 또는 catch 블록)으로 넘어감
      => 에러 발생한 프로미스 이후의 프로미스들은 실행되지 않음
Promise.all([getPosition(), setTimer(1000)]).then((promiseData) => {
  console.log(promiseData);	// getPosition, setTimer의 결과를 순서대로 배열에 담아 리턴
});

getPosition, setTimer 작업까지 모두 끝난 뒤에 차례대로 결과 리턴
프로미스 중 일부가 실패했을 때

 

 

 

 

Promise.allSettled()

  • Promise.all()에서 일부 프로미스가 실패했을 때, 이전 프로미스까지 모두 상태 완료 시킨 후 리턴
  • all()의 단점 보완
  • 프로미스들의 각 처리 완료 결과를 보고서 받는 느낌으로 자세히 알 수 있음
Promise.allSettled([getPosition(), setTimer(1000)]).then((promiseData) => {
  console.log(promiseData);
});

getPosition 프로미스가 실패했는데 에러를 띄우지 않고, 'rejected' 상태와 에러 메시지를 객체로 담아 리턴

'JS' 카테고리의 다른 글

번들링을 하는 이유?  (0) 2024.09.06
모듈화 정리  (0) 2024.09.06
HTTP 요청하기 & 에러 처리 (+ Axios)  (0) 2024.09.05
HTTP 통신을 해보자  (0) 2024.08.30
콜백 지옥, 프로미스, Async & Await  (0) 2024.08.29
'JS' 카테고리의 다른 글
  • 모듈화 정리
  • HTTP 요청하기 & 에러 처리 (+ Axios)
  • HTTP 통신을 해보자
  • 콜백 지옥, 프로미스, Async & Await
쥬피썬더의노예
쥬피썬더의노예
오히려 좋아
  • 쥬피썬더의노예
    d.log
    쥬피썬더의노예
    글쓰기 관리
    • 분류 전체보기 (112)
      • JS (37)
      • TS (3)
      • WEB (10)
      • React.js (20)
      • Next.js (4)
      • tanstack query (2)
      • Node.js (2)
      • HTML (5)
      • CSS (13)
      • CS (1)
      • 에이전트 (1)
      • Git (4)
      • JAVA (0)
      • SQL (0)
      • db (0)
      • GSAP (0)
      • 자료구조 (1)
      • 알고리즘 (0)
      • ✨회고 (5)
      • 포꾸 (0)
      • 인터뷰 (0)
      • 개발일지 (0)
      • 일기 (1)
      • etc (3)
      • 정처기 실기 (0)
        • C (0)
        • Java (0)
        • Python (0)
      • fonts (0)
      • articles (0)
      • 도서 (0)
  • 인기 글

  • 태그

    자바스크립트
    javascript
    리팩토링
    클로저
    useEffect
    SSG
    TypeScript
    CSR
    아키텍처
    안티그래비티
    state
    WEB
    React
    React.JS
    유효성 검사
    프론트엔드
    슬라이딩 윈도우
    SSR
    css
    Til
    HTML
    useState
    zustand
    리액트
    조합 패턴
    폼
    상태 관리
    GIT
    Next.js
    React Query
  • 최근 글

  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.3
쥬피썬더의노예
프로미스 번외
상단으로

티스토리툴바