async await解体新書
更新日 2023-08-09 13:43:47
javascript
まずはPromiseをおさらいする
1.Promiseの基本
// お約束の定義(関数)を引数に渡してインスタンスを生成する(引数のresolve, rejectもまた関数である)
const promise = new Promise(function(resolve, reject) {});
2.resolveするPromise
function funcPromise() {
// お約束の定義を引数に渡してインスタンスを生成する(resolveする)
const promise = new Promise(function(resolve, reject) {
resolve("ok"); // function resolve(v) {return v;}のイメージ
});
// インスタンスを返却
return promise;
}
// インスタンス生成
const promise = new funcPromise();
// then関数でresolveの結果を受け取る
promise.then(function(result) {
console.log(result) // "ok"
});
以上を踏まえてasync await
// async関数は自動的にPromiseオブジェクトを返す(→だからawaitを外すとPromiseオブジェクトが返される)
// async関数の中でreturnすることはresolveすることを意味する
async function funcAsync() {
setTimeout(function() {
// "OK"をresolveする
return "ok";
}, 1000);
}
(async function() {
// resolveの結果が返される
const result = await funcAsync();
console.log(result) // "ok"
})();