async와 await는 Promise 기반 비동기 처리를 순차적인 코드 형태로 표현하는 JavaScript 문법이다.
원리
async 함수는 Promise를 반환하고 await는 그 결과가 준비될 때까지 해당 함수의 진행을 중단한다. 일반적인 try와 catch로 거부된 결과를 다룰 수 있다.
예시
async 함수 안에서 await fetch(url)로 응답을 기다리고 이어서 본문을 처리할 수 있다. 독립적인 요청은 함께 시작한 뒤 결과를 모으도록 구성할 수 있다.
주의할 점
await가 전체 프로그램을 멈추는 것은 아니지만 오래 걸리는 동기 계산은 여전히 실행 흐름을 점유한다. 반복문에서 매번 기다리면 의도치 않게 작업이 직렬화될 수 있다.