async/awaitを使ってPromiseの評価値をやりとりする方法

はじめに

async/awaitを使ってPromiseの評価値をやりとりする方法がよくわからなかったので、理解を深める目的で調べてまとめた。

JavaScript Primer - 迷わないための入門書 #jsprimer

async/awaitを使ってPromiseの評価値をやりとりする方法

Promiseとthen()を使って、Promiseから返ってきた値を次の処理に使う場合は以下のように書く。

const sample1 = () => {
  return new Promise((resolve) => {
    setTimeout(
      () => {
        resolve('サンプル1')
      }, 2000)
  })
}

sample1().then(value => {
  console.log(value)
}) //サンプル1

これをasync/awaitで書くと、

const sampleSync = async () => {
  console.log(await sample1())
}

sampleSync() //サンプル1

こうなる。

なぜこう書けるかというと、「await式は、awaitの右辺(Promiseインスタンス)の評価結果を値として返す」ため。