본문 바로가기
카테고리 없음

비동기처리작업하는 방법2_async/await

by 개발자doc 2024. 5. 19.
목차
1. async/await란?
2. 각 키워드의 역할 
3. promise가 있는데 사용하는 이유
1. async/await란?
  • promise를 개선한 비동기 처리방법

ES8에 추가된 기능으로 프로미스를 일반 함수처럼 사용하여 가독성을 높이고 쉽게 사용할 수 있도록 하였다

async function fn(){
    try{
        await 비동기 작업
    }catch(e){
        //에러발생시 처리
    }
}

async는 일반 함수, 익명 함수 앞에 쓰이며 단독으로 사용이 가능하지만 await는 async 키워드가 붙은 함수 앞에만 사용이 가능하다.

 

2. 각 키워드의 역할

 

async => 일반 함수를 프로미스 객체로 변환

await => 비동기 작업의 완료 결과를 기다림

 

async는 함수를 비동기 처리를 위한 프로미스 객체로 만들어주는데 실제로 내용을 출력해보면 대기 상태의 프로미스 객체를 볼 수 있다.

await는 비동기 처리가 완료될 때까지 기다려달라는 키워드로 이후 await가 붙은 작업이 있다면 그 작업이 끝날 때까지 다음 작업은 진행할 수 없다.

3. promise가 있는데 사용하는 이유

 

프로미스보다 가독성이 좋은 것 이외에도 비동기 작업에 대한 결과에도 차이가 있다.

프로미스는 작업의 결과 데이터를 일반 변수에 할당할 수 없지만 async/await를 사용하면 가능하다.