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 |