async await은 Promise를 가독성 좋게 사용하는 한 가지 방법에 불과하다고 합니다.
자바스크립트를 통해 비동기 코드를 처리하는 가장 기본적인 방법은 콜백 함수, 프라미스(Promise), async-await 등이 있습니다.
각각 모두 장단점이 있습니다.
각각의 함수가 중첩되는 상황이 깊어질수록 콜백 함수는 콜백 헬을 만들고, 여러 프라미스가 체이닝이 되어 선언되면 에러를 디버깅하긴 힘듭니다.
여러 개의 비동기 함수를 사용하려 할 때 Promise.all과 async/await을 사용해서 시간을 계산해보면 Promise.all이 훨씬 시간이 단축되는 것을 테스트 해볼 수 있습니다.
그 이유는 async-await 함수는 하나하나 다 기다렸다가 하고, Promise.all은 병렬로 비동기 함수를 실행시켰기 때문입니다.
그리고 Promise.all 의 장점으로는 Fail Fast가 있습니다.
비동기 처리를 병렬적으로 빠르게 처리할 수 있다는 장점이 있지만 장점 뿐만 아니라 비동기 처리가 실패했을 경우도 있습니다. 이 때 Promise.all()은 중간에 어떤 함수가 에러가 났을 때 그 실패를 즉시 반환합니다.
즉, 에러가 나도 바로바로 확인할 수 있는 장점이 있습니다.
'Javascript > Node.js' 카테고리의 다른 글
[Node.js] FCM(Firebase Cloud Messaging)토큰으로 백그라운드 앱에 메시지 보내기 (0) | 2021.11.04 |
---|---|
[mac/vscode] 프로젝트마다 node 버전 다르게 사용하는 방법 (0) | 2021.10.26 |
모듈 시스템 (0) | 2021.09.30 |
promise API (0) | 2021.09.28 |
콜백 (0) | 2021.09.27 |