await 연산자는 Promise 를 기다리기 위해 사용됨. 연산자는 async function 내부에서만 사용할 수 있습니다.

[rv] = await expression;

expression

Promise 혹은 기다릴 어떤 값입니다.

rv

Promise 에 의해 만족되는 값이 반환됩니다. Promise 가 아닌 경우에는 그 값 자체가 반환됩니다.

예제

만약 Promiseawait 에 넘겨지면, awaitPromise가 fulfill되기를 기다렸다가, 해당 값을 리턴한다.

function resolveAfter2Seconds(x) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(x);
    }, 2000);
  });
}

async function f1() {
  var x = await resolveAfter2Seconds(10);
  console.log(x); // 10
}

f1();

만약 값이 Promise 가 아니라면, 해당 값은 resolve 된 Promise 로 변환되며 이를 기다립니다.

async function f2() {
  var y = await 20;
  console.log(y); // 20
}
f2();

만약 Promise가 reject되면, reject된 값이 throw됩니다.

async function f3() {
  try {
    var z = await Promise.reject(30);
  } catch(e) {
    console.log(e); // 30
  }
}
f3();

try블럭 없이 rejected Promise다루기

var response = await promisedFunction().catch((err) => { console.error(err); });