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内の処理を再開する