Javascript : Promise

kimsnmyng·2024년 12월 8일

Vanilla Javascript

목록 보기
21/23
// promise
// 비동기 작업을 효율적으로 처리할 수 있도록 도와주는 자바스크립트의 내장 객체
// promise란 비동기 작업 실행, 상태 관리, 결과 저장, 병렬 실행, 다시 실행 등의 기능을 제공해주는 객체

// promise는 대기(비동기 작업 진행 중), 성공(비동기 작업 성공적으로 마무리), 실패(비동기 작업이 실패된 상태)로 나뉜다.
// 비동기 상황이 대기(pending)였다가 성공 상태로 바뀌는 것을 resolve (해결) 되었다.
// 비동기 상황이 대기였다가 실패 상태로 바뀌는 것을 reject(거부) 되었다.

function add10(num) {
  const promise = new Promise((resolve, reject) => {
    // 비동기 작업을 진행할 코드
    // executor
    setTimeout(() => {

      if (typeof num === 'number') {
        resolve(num + 10)
      } else {
        reject("num이 숫자가 아닙니다.")
      }
    }, 2000);
  });

  return promise;
};

add10(0)
.then((result) => {
  console.log(result);
  return add10(result);
})
.then((result) => {
  console.log(result);
  return add10(undefined);
})
.then((result) => {
  console.log(result);
})
.catch((error) => {
  console.log(error);
})

// 진심 비효율적인 코드다.
profile
안녕하세요 김선명입니다.

0개의 댓글