resolve, reject 정리하기

설탕유령·2022년 8월 10일
0
post-custom-banner

처음 봤을때 잠깐 생소했던 resolve, reject에 대해 정리해보려 한다.

비동기 처리를 하면 Promise를 맞이하게 된다.
대부분은 promise.then(result => {성공하면 돌아갈 코드} 형식으로 사용을 하면서 then에 친숙해진다.
하지만 다른 오픈소스를 보다가 다른 형태를 보았는데 new Promise((resolve, reject) => {}) 형태가 존재한다.
다음과 같은 형태로 예시를 들어보자

// Callback 방식
function test (callback) {
  if(조건) {
    callback(new Error('에러'), undefined);
    return;
  }
  callback(undefined, '성공');
}

// Promise 방식
new Promise((resolve, reject)=>{
  if(조건) {
    resolve('성공');
  }
  reject('실패');
})

위에 예시를 보면 첫번째는 콜백 방식이고, 콜백 방식이 성공/실패를 구분할때 인자의 위치를 사용한다.
다음 Promise 방식을 살펴보면, 비동기 작업의 처리 과정에서 2개의 인자로 성공/실패를 구분한다.

다음은 오픈소스를 참고하면서 내가 보게되었던 구조였다.
만나면 당황하지 말자


function process(file) {
  new Promise(function (resolve, reject) {
    // 첫번쨰 처리내용
    resolve('result1');
  })
  .then(function (result1) {
    return new Promise(function (resolve, reject) {
      resolve('result2');
    });
  })
  .then(function (result2) {
    return new Promise(function (resolve, reject) {
      resolve('result3');
    });
  })
  .then(function (result3) {
    //마지막 처리 완료
  });
}
profile
달콤살벌
post-custom-banner

0개의 댓글