2023-09-30

JavaScriptのsleep処理を1行で実装

よくある事例

const sleepTest = () => {
  console.log('start')
  // 一定時間待機させたい
  console.log('end')
}

JavaScript には sleep 関数がない

何故だ。。。


async/await と setTimeout を使用して実現

const sleepTest = async () => {
  console.log('start')
  // 3秒sleep
  await new Promise((resolve) => setTimeout(resolve, 3000))
  console.log('end')
}

関数化

// 指定ミリ秒sleep
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
const sleepTest = async () => {
  console.log('start1')
  await sleep(2000)
  console.log('end1')
  console.log('start2')
  await sleep(2000)
  console.log('end2')
}