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