[JavaScript] async, await

이다혜·2022년 8월 24일
post-thumbnail

1. async 함수


async는 function 앞에 위치한다.

async function f() {
	return 1;
}

async가 붙은 함수는 항상 promise를 반환한다.

async function f() {
    return 1;
}
const result = f().then();
console.log(result);


-> console 창에 찍어봤을 때 1이 출력되지 않고 Promise가 출력된다.
-> 1은 Promise의 PromiseResult값으로 들어갔다.

2. await


awaitasync 함수 안에서만 동작한다.

let value = await promise;

javascript는 await 키워드를 만나면 promise가 처리될 때까지 기다리고 결과는 그 이후 반환된다.

1초 뒤 이행되는 promise

async function f() {

  let promise = new Promise((resolve, reject) => {
    setTimeout(() => resolve("완료!"), 1000)
  });

  let result = await promise; // 프라미스가 이행될 때까지 기다림 (*)

  console.log(result); // "완료!"
}

f();

-> asyncawait가 없으면 console.log가 먼저 실행되어 PromiseResult가 undefined이다.

0개의 댓글