MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

await 演算子は、async function によって promise が返されるのを待機するために使用します。

構文

[rv] = await expression;
expression
解決をを待つ promise かいずれかの値。
rv

解決された promise の値、または promise ではない場合は値自体を返す。

説明

await 式は async function の実行を一時停止し、promise の解決を待ちます。その後、async function の実行を再開し、解決された値を返します。値が promise ではなかった場合、解決された promise に変換されます。

promise が拒絶された場合、await 式は理由となった値をスローします。

promise が await 式で停止された場合、promise が解決されて、解決された値を返すのを待ちます。

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 ではなかった場合、値を解決された promise に変換して、それを待ちます。

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

promise が拒否された場合、理由となった値をスローします。

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

仕様

仕様 ステータス コメント
ECMAScript Async Functions
async function の定義
ドラフト 提案

ブラウザー実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari (WebKit)
基本サポート 55 52.0 (52.0) ? ? 42 ?
機能 Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート 未サポート 未サポート 52.0 (52.0) ? 42 ? 55

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,