언어/Javascript

async/await

에린_1 2024. 11. 22. 21:17
728x90

async/await

  • 비동기 코드를 더 읽기 쉽게 작성할 수 있도록 도와주는 기능이다. Promise 기반의 비동기 작업을 동기적인 코드 흐름처럼 보이게 하여, 코드의 가독성과 유지보수성을 크게 향상 시킨다.
  • 비동기 작업을 처리할 때 콜백 함수나 Promise 체이닝을 사용하던 방식을 async/await를 사용해 더욱 직관적으로 작성할 수 있다.

기본 개념

  • async
    • 함수 앞에 async 키워드를 붙이면 그 함수는 Promise를 반환하는 비동기 함수가 된다. async 함수는 내부에 await 키워드를 사용할 수 있다.
  • await
    • 비동기 작업이 완료될 때까지 기다리는 역할을 한다. await는 Promise가 해결될 때까지 함수의 실행을 일시적으로 멈추고, 결과값을 반환한다. await 키워드는 오직 async 함수 내부에서만 사용할 수 있다.

장단점

  • 장점
    • 코드 가독성 : async/await은 동기적 코드 흐름을 유지하기 때문에, 비동기 작업을 더욱 직관적으로 작성할 수 있다. 이를 통해 복잡한 콜백 지옥이나 Promise 체이닝을 피할 수 있다.
    • 에러 처리 용이성 : try-catch를 통해 비동기 작업의 에러 처리가 쉽고 간결해진다. 비동기 코드에서 발생하는 예외를 동기 코드와 동일한 방식으로 처리할 수 있다.
    • 순차적 비동기 작업 처리 : 여러 비동기 작업을 순차적으로 실행해야 할 때 체이닝 없이 순차적으로 작성할 수 있어 코드가 더 간단해진다.
  • 단점
    • 병렬 실행 어려움 : await을 사용하면 해당 작업이 완료될 때까지 기다리기 때문에, 여러 비동기 작업을 병렬로 처리하는 것이 어렵다. 이 경우 Proimise.all과 함께 사용해야 효율적인 병렬 처리가 가능하다.
    • 호환성 문제 : 이를 지원하지 않는 환경에서는 사용이 제한된다.
728x90

'언어 > Javascript' 카테고리의 다른 글

Promise  (0) 2024.11.21
Node.js 공부. 2  (0) 2024.04.30
Node.js 공부. 1  (1) 2024.04.26