Promise란 무엇이며 코드가 어떻게 구성되어있는가

yonghee·2022년 1월 20일
0

꼭 알아두자

목록 보기
3/8

자바스크립트에서 비동기처리를 위해서 사용되는 패턴이며,
Callback 같은 경우 함수의 처리 순서를 보장하기 위해서 함수를 중첩하게 사용되는 경우가 발생해 콜백헬이 발생하는 단점과 에러처리가 힘들다라는 단점이 있다.
콜백함수(Callback Function)란 파라미터로 함수를 전달받아, 함수의 내부에서 실행하는 함수이다.
그래서 나온게 Promise이며 ES6부터 정식 채택되어 사용중이다.

Promoise 생성자 함수를 통해 인스턴스화하며,

// Promise 객체의 생성
const promise = new Promise((resolve, reject) => {
  // 비동기 작업을 수행한다.

  if (/* 비동기 작업 수행 성공 */) {
    resolve('result');
  }
  else { /* 비동기 작업 수행 실패 */
    reject('failure reason');
  }
});

비동기 처리에 성공하면 resolve메소드를 호출해서 비동기 처리 결과를 후속처리 메소드로 전달한다.

비동기 처리에 실패하면 reject메소드를 호출해서 에러메시지를 후속처리 메소드로 전달한다.

후속처리메소드는 then과 catch가 있다. 둘다 Promise를 반환한다.

then 을 가지고 메소드 체이닝을 통하여서 콜백헬 문제를 해결 할 수 있다.

then으로 연결된 Promise 체인이 코드를 훨씬 보기 좋게 만들어줬다. 코드의 depth를 깊게 만들지 않아서 콜백 패턴에 비해 더 유지보수성이 좋아졌다. 또한 비동기 작업을 쉽게 추가하거나 수정하기가 쉽다.

profile
필요할 때 남기는 날것의 기록 공간

0개의 댓글