asyncとawaitにの使い方をまとめておく

asyncとawaitを利用した、非同期処理の構文

async

async要点

  • asyncは非同期関数を定義する関数宣言
  • async functionは呼び出されるとPromiseを返す。
  • async functionではない場合、Promiseを返さない
  • そして値をreturnした場合、Promiseは戻り値をresolveする
  • functionが例外や何らかの値をthrowした場合はその値をrejectする

then

  • then() メソッドは Promise を返す
  • 最大2つの引数、 Promise が成功した場合と失敗した場合のコールバック関数をとる
  • resolveが走るとthenがはしる

catch

  • rejectがはしるとcath()が実行される

await

await要点

  • async function内でPromiseの結果(resolve、reject)が返されるまで待機する(処理を一時停止する)演算子のこと
  • Promiseの結果が返されるまで、async function内の処理を一時停止
function testResolve(value) {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve(value * 3);
        }, 2000);
    })
}

function test() {
    return testResolve(5).then(result => {
        return result + 3;
    });
}

test().then(result => {
    console.log(result); // => 18
});

Promiseとの比較はこんな感じ f:id:nmatsu2013:20200211230436p:plain