Promise

비동기 처리 방식

콜백 함수 사용

필요한 일을 비동기적으로 처리하기 위해 콜백함수를 사용할 수 있다. 주로, 처리되어야 하는 이벤트들을 순차적으로 콜백함수를 통해 처리하게 된다.

하지만 이는, 콜백 지옥(callback hell)을 야기할 수 있다.

예시 : file1.txt ~ file3.txt를 읽은 후 그 데이터들을 반환 하는 경우

위 소스 코드는 2가지 치명적인 단점이 존재한다.

  1. 매우 좋지 않은 가독성, 유지보수

    반복되는 코드가 여러 겹 중첩되어 보이기 때문에, 코드를 읽기 힘든 구조로 보이고 있다.

  2. 에러 처리 시 모든 콜백 에서 에러 핸들링

    모든 콜백에 대한 예외 처리를 해주어야 하는데, 만약 특정 콜백 에서 문제가 발생할 경우 모든 콜백을 들여다 봐야 하는 번거로움이 발생하게 된다.

이런 불편함을 해소하기 위해 Promise 객체가 생겨 났다.

Promise란?

비동기 작업이 맞이할 미래의 완료 또는 실패와 결과 값을 나타내는 인스턴스