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との比較はこんな感じ