비동기 처리 (Promise)

Bin2·2022년 5월 28일
0
post-custom-banner

Promise

Promise는 자바스크립트 비동기 처리에 사용되는 객체이다.
이를 사용하면 비동기 작업이 종료된 이후의 성공 결괏값이나 실패에 대하여 처리할 수 있다.

Promise는 다음 중 하나의 상태를 가진다.

  • 대기(pending): 이행하지도, 거부하지도 않은 초기 상태
  • 이행(fullfilled): 연산이 성공적으로 완료됨
  • 거부(rejected): 연산이 실패함

Promise 예시

function promise(name) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (name === "sangbin") {
        resolve(name);
      } else {
        reject(new Error("who are you"));
      }
    }, 2000);
  });
}

new Promise() 객체를 생성하여 리턴해주고, resolve와 reject라는 콜백함수를 인수로 넘겨준다.
이를 excutor라고 부르며, 자바스크립트에서 자체 제공하는 콜백이다.

  • resolve(value): 일이 성공적으로 끝난 경우 그 결과를 나타내는 value와 함께 호출
  • reject(error): 에러 발생 시 에러 객체를 나타내는 error와 함께 호출

연산이 성공적으로 완료되면 .then() 의 콜백함수가 실행되고,
연산이 실패하면 catch() 의 콜백함수가 실행된다.

promise("sangbin")
  .then((name) => console.log(name))
  .catch((err) => console.log(err));

// sangbin

promise("123")
  .then((name) => console.log(name))
  .catch((err) => console.log(err));

// who are you
profile
Developer
post-custom-banner

0개의 댓글