eatthefrog

자바스크립트: 비동기 처리를 위한 Promise + then 방식과 async + await 방식의 차이점 본문

프론트엔드 노트

자바스크립트: 비동기 처리를 위한 Promise + then 방식과 async + await 방식의 차이점

eater_forg 2025. 12. 22. 15:01

비동기 처리를 위한 Promise + then 방식과 async + await 방식의 차이점

  • Promise + then: 비동기 작업의 결과를 기다린 후 .then() 콜백 함수를 통해 다음 작업을 이어가는 방식으로, 작업이 많아지면 코드가 길어지고 복잡해질 수 있습니다.
  • async + await: await 키워드를 사용해 비동기 작업이 완료될 때까지 실행을 일시 정지시킴으로써, 비동기 코드를 마치 동기적인 코드(순차적 코드)처럼 읽기 쉽게 작성해 줍니다.
  • 에러 처리: Promise는 .catch()로 에러를 잡지만, async/await는 일반적인 try-catch 문을 그대로 사용할 수 있어 에러 관리가 더 직관적이고 편리합니다.

 

 

구분 Promise + then async + await
가독성 체이닝이 길어지면 복잡함 위에서 아래로 읽히는 절차적 구조
흐름 제어 비동기 흐름이 명시적임 실행 흐름이 중단되었다 재개됨
코드 예시 Tour.create(data).then(...) const tour = await Tour.create(data)