await / async - Javascript

await / async

async は、関数の前につけると、非同期関数という特殊な関数を定義することができます。

async は、「 asynchronous 」の省略形です。

await は、Promiseインスタンスの前につけることで、Promise のステータスが settled ( fulfilled または rejected )になるまで、次のコードの実行を待機します。

asynchronous : エイシンクロナス

非同期

async : エイシンク

非同期

function A(){
  return new Promise((resolve, reject) => {
    setTimeout(function(){
      console.log("A");
      resolve();
    }, 2000);
  });
}

async function message(){
  await A();
  console.log("B");
}

message();

await / async の注意点

async / await の検証で処理を遅らせるために、setTimeout()は使えません。

次のコードは、「 B 」が表示された後に、「 A 」が表示されます。

async function A(){
  setTimeout(function(){
    console.log("A");
  }, 2000);
}

async function message(){
  await A();
  console.log("B");
}

message();

次のようにコード変更すれば、「 A 」「 B 」の順で表示されます。

function A(){
  return new Promise(function(resolve, reject) {
    setTimeout(function(){
      resolve("A");
    }, 2000);
  });
}

async function message(){
  let a = await A();
  console.log(a);
  console.log("B");
}

message();