• 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2019-10-09T09:29:52+09:00","default:ryuichi","ryuichi")
#author("2019-11-04T03:48:56+09:00","default:ryuichi","ryuichi")
* Promiseの実行 [#m1a1b5e7]

** 呼び出される非同期関数 [#f273c339]
** 呼び出される非同期関数 - Promiseを返す関数 [#f273c339]

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


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

 console.log("1");
 
 resolveAfter3Seconds().then((data) =>{
     console.log(data);
 });
 
 console.log("2");
 
  => "1"
     "2"
     "resolved"

** 非同期関数の呼び出し 2 - async/awaitでresolveする [#xe4d9364]

** 非同期関数の呼び出し 2 - async/await [#xe4d9364]


 async function getAsyncData() {
     const result = await resolveAfter3Seconds();
     console.log(result);
 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