비동기 처리의 단점

비동기 처리의 경우 Web API로 들어오는 요청 순서가 아닌, 작업이 완료되는 순서에 따라 처리된다는 특징이 있다.

이 경우 실행과정을 예상할 수 없어 코드의 실행 순서가 불명확해진다는 단점이 생김.

이 경우 Callback 함수를 사용하면 순서를 명확히 할 수 있음


Callback


Callback 함수를 사용하는 이유


Callback Hell(콜백 지옥)

step1(function (value1) {
    step2(function (value2) {
        step3(function (value3) {
            step4(function (value4) {
                step5(function (value5) {
                    step6(function (value6) {
                        // Do something with value6
                    });
                });
            });
        });
    });
});

Promise

상태


예시

new Promise(function(resolve, reject) {
  // 비동기 작업 수행

  if (성공) {
    resolve(result); // 작업 완료 후 이행 상태로 전환
  } else {
    reject(error); // 작업 실패 후 거부 상태로 전환
  }
})
  .then(function(result) {
		...
  })
  .catch(function(error) {
		...
  })

Promise 인스턴스의 메서드