공부 및 일상기록

[Javascript] async await란 무엇인가? 본문

개발/Javascript

[Javascript] async await란 무엇인가?

낚시하고싶어요 2023. 1. 5. 01:15

async와 await는 새로운것이 추가된것이 아닌 기존에 있는 프로미스를 간결하고 간단하게 사용할 수 있게 해주는 코드이다.

이처럼 기능이 추가된것이 아닌 기존에 존재하는것 위에 감싸진 api를 제공하는 것을 syntactic sugar 라고 한다.

 

사용방법

async와 await는 절차적 언어에서 작성하는 코드와 같이 사용법도 간단하고 이해하기도 쉽다.

function 키워드 앞에 async만 붙여주면 되고 비동기로 처리되는 부분 앞에 await만 붙여주면 된다.

 

async가 붙은 함수는 프로미스를 반환하고 프로미스가 아닌것은 프로미스로 감싸서 반환한다.

await 키워드를 만나면 프로미스가 처리(settled)될 때까지 기다린다.

 

그리고 프로미스 처리가 완료되면 resolve 되면 값만 따로 추출해서 리턴한다.

await는 promise.then보다 좀 더 세련되게 프로미스의 result 값을 얻을 수 있도록 해주는 문법이다.

await가 대기를 해주기 때문에 .then이 거의 불필요하다.

또한 promise.catch 대신 일반 try...catch를 사용할 수 있다는 장점도 생긴다.