JS

[JS] async & await

디지몬진화 2024. 7. 23. 01:06

01. async & await 란?

- 자바스크립트의 비동기처리 패턴

- 기존의 비동기 처리 방식인 콜백함수와 프로미스의 단점 보완

 

02. async & await 기본 문법

1. 함수 앞에 async 예약어 붙임

2. 함수 내부 로직 중 HTTP 통신을 하는 비동기 처리 코드 앞에 await를 붙임

async function 함수명() {
  await 비동기_처리_메서드_명();
}

 

03. async & await 예제 코드

function fetchItems() {
  return new Promise(function(resolve, reject) {
    var items = [1,2,3];
    resolve(items)
  });
}

async function logItems() {
  var resultItems = await fetchItems();
  console.log(resultItems); // [1,2,3]
}

- fetchItems() 함수 : 프로미스 객체를 반환하는 함수 

- logItems() : fethcItems() 함수의 결과 값이 resultItems 변수에 담김

 

04. 예외 처리

- try & catch 를 통해 예외를 처리

- catch{} 를 통해 오류를 잡아낼 수 있음

async function logTodoTitle() {
  try {
    var user = await fetchUser();
    if (user.id === 1) {
      var todo = await fetchTodo();
      console.log(todo.title); // delectus aut autem
    }
  } catch (error) {
    console.log(error);
  }
}