Javascript 와 Async Await

박성룡 ( Andrew park )
2 min readJun 11, 2019

--

자바스크립트를 처음부터 다시 공부해보려고 한다.

프로그래밍에서 async await 패턴은 비동기식 프로그램을 일반적인 동기 프로그램과 유사한 방식으로 구성 할 수 있도록 많은 프로그래밍 언어에서 지원하고 있는 기능이다.

ECMAScript 2017 에서부터 async await 가 정식으로 추가 되었다.

async await 는 Promise 를 잘 알고 있을 수록 이해하기 쉽다.

async

async function 은 내부에 await 문법을 사용하기 위해 사용된다.

async function 은 AsyncFunction 객체를 반환다.

AsyncFunction 은 new AsyncFunction 로 만들수 없으며, async function 표현식으로만 생성된다.

async function 은 인자를 받을 수 있으며, 실행 후 반환 값은 Promise 이다.

async function 은 호출하기 전 까지 내부의 비동기 작업은 동작되지 않는다.

원시 값을 반환 한다면, Promise.resolve 로 래핑되어 반환한다.

만약 함수 내에서 에러가 발생한다면, Promise.reject 로 래핑되어 반환한다.

async function 을 Promise 로 변환한다면, 다음과 같이 표현할 수 있다.

await

await 연산자는 async function 내부에서만 사용할 수 있다.

외부에서 사용하면 SyntaxError가 발생한다.

await 는 반환된 Promise 의 resolve 의 상태 까지 대기한다.

await 의 값은 Promise 의 resolve 값이 반환된다.

만약 중간에 reject 을 만나면 해당 async function 스코프의 작업을 중단되며, 이후 스코프 작업이 이어진다.

try catch 문으로 await 에서 발생한 reject 을 catch 할 수 있다.

--

--