JavaScriptでAsync-Await-Catch

ちょっと予習。

async function sleep(wait, result) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (result === 3) {
        reject('error!')
      } else {
        console.log(result)
        resolve()
      }
    }, wait)
  })
}

async function syncSleep() {
  await sleep(2000, 1)
  await sleep(100, 2)
  await sleep(1000, 3)
}

syncSleep().catch(error => console.log('Error', error))

ポイントとなるのは、

  • sleepでPromiseオブジェクトを返すこと
  • Promiseの中でreject, resolveで正常/異常を区別つける
  • 時間がかかる関数、それを呼び出す関数はasyncをつけること

でしょうかね。