promise와 callback은 둘다 비동기 작업을 처리하는 방법이다.
차이점으로는
구조와 가독성, 에러 처리, 상태 관리가 있으며,
구조와 가독성 - promise를 사용하면, 비동기 작업을 좀 더 선언적으로 표현할 수 있고, 코드의 가독성이 callback에 비해 향상된다. 반면, callback은 중첩 사용 시에 흔히 말하는 callback지옥에 빠질 수 있다.
에러처리 - promise는 catch() 메서드를 이용해서 에러 처리를 관리 할 수 있다. callback은 각 callback 함수마다 에러 처리 로직을 적용해야한다.
상태 관리 - promise는 pending, fullfiled, rejected 3가지 상태를 가지고, 이 상태들을 이용해서 비동기 작업의 결과를 명확하게 다룰 수 있다.
아, 또 하나 더 차이를 들자면, callback함수는 다른 함수에 인자로 전달되는 함수인데, 특정 작업이 완료되어야 실행된다.
그치만 promise는 .all() 메서드를 사용하여 병렬적으로 비동기 작업을 처리할 수 있다.
댓글