Promiseの実行

呼び出される非同期関数 - Promiseを返す関数

function resolveAfter3Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('resolved');
    }, 3000);
  });
}

非同期関数の呼び出し 1 - Promise.then()でresolveする

console.log("1");

resolveAfter3Seconds().then((data) =>{
    console.log(data);
});

console.log("2");

 => "1"
    "2"
    "resolved"

非同期関数の呼び出し 2 - async/awaitでresolveする

console.log("1");

async function getAsyncData() {                 // (0)
  console.log("A");

  const result = await resolveAfter3Seconds();  // (1)
  console.log(result);                          // (2)

  console.log("B");
}

getAsyncData();

console.log("2");

 => "1"
    "A"
    "2"
    "resolved"
    "B"
  • (0) awaitはasync function内でないと利用できない
  • (1) async function内でPromiseの結果が返される(=resolve('resolved')が実行される)まで待機する
  • (2) 結果が返されたらasync function内の処理を再開する

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2019-11-04 (月) 03:48:56 (35d)