비동기 처리를 위해 callback 함수를 사용하면 작업이 많아질수록 코드가 복잡해져 가독성이 떨어지고 오류를 찾기도 어려워진다.
이 콜백 지옥(Callback Hell) 현상을 피하기 위해 도입된 기능이 Promise와 async/await 이다.
Promise 사용
제작 코드(Producing Code)와 소비 코드(Consuming Code)로 나눠진다.
먼저 제작 코드에서 Promise 객체를 생성, resolve와 reject 매개변수를 통해 성공과 실패의 경우를 작성한다.
이후 소비 코드에서 .then .catch .finally(생략 가능) 함수를 활용해 조절할 수 있다.
isLike를 false로 수정한 결과
async/await 사용
마찬가지로 Promise 객체를 먼저 생성해야 한다.
이렇게 설정된 함수에는 await를 사용할 수 있다.
await를 사용한 함수가 작업을 마치기 전에는 다음 함수가 실행되지 않는다.
'JavaScript' 카테고리의 다른 글
[JavaScript] Module 사용 방식 : CJS, ESM (0) | 2024.06.14 |
---|