async와 await

Vorhandenheit ·2021년 9월 28일
0

JS.코어

목록 보기
25/29
post-custom-banner

async & await

1.async 함수

async function f() {
return 1
}

function 앞에 async를 붙이면 해당 함수는 프라미스를 항상 반환함\

2.await

let value = await promise;

자바스크립트는 await를 만나면 프라미스가 처리될 때까지 기다림, 결과는 그 이후에 반환

  • await는 async 함수 안에서만 동작함
  • await는 최상위 레벨 코드에서 사용할 수없음
// 최상위 레벨 코드에선 문법 에러가 발생함
let response = await fetch('/article/promise-chaining/user.json');
let user = await response.json();

익명 async 함수로 코드를 감싸면 최상위 레벨에서도 await를 사용할 수 있음

(async () => {
  let response = await fetch('/article/promise-chaining/user.json');
  let user = await response.json();
  ...
})();

3.에러 핸들링

프라미스가 정상적으로 동작하면 await promise는 프라미스 객체의 result에 저장된 값을 반환함
프라미스가 거부되면 throw문을 작성한 것처럼 에러가 던져짐

async function f() {
  await Promise.reject(new Error("에러 발생!"));
}
=== // 동일
  async function f() {
  throw new Error("에러 발생!");
}
profile
읽고 기록하고 고민하고 사용하고 개발하자!
post-custom-banner

0개의 댓글