JavaScript関数をスリープ状態にする方法

JavaScriptで関数を一定時間スリープさせる方法を学ぶ

関数が一定の秒数またはミリ秒の間実行を一時停止したい場合があります。

CやPHPのようなプログラミング言語では、sleep(2)プログラムを2秒間停止させます。 JavaにはThread.sleep(2000)、Pythonにはtime.sleep(2)、Goはtime.Sleep(2 * time.Second)

JavaScriptにはネイティブのスリープ機能はありませんが、promise(およびES2018ではasync / await)の導入により、このような機能を非常に読みやすく実装して、関数をスリープ状態にすることができます。

const sleep = (milliseconds) => {
  return new Promise(resolve => setTimeout(resolve, milliseconds))
}

または、Node.jsでは、より単純です。

const { promisify } = require('util')
const sleep = promisify(setTimeout)

詳細はこちら約束する

これをで使用できるようになりましたthen折り返し電話:

sleep(500).then(() => {
  //do stuff
})

または、非同期関数で使用します。

const doSomething = async () => {
  await sleep(2000)
  //do stuff
}

doSomething()

JavaScriptがどのように機能するかを覚えておいてください(イベントループ)、これは他の言語で発生する可能性があるようにプログラムの実行全体を一時停止するのではなく、関数のみがスリープします。

同じ概念をループに適用できます。

const list = [1, 2, 3, 4]
const doSomething = async () => {
  for (const item of list) {
    await sleep(2000)
    console.log('🦄')    
  }
}

doSomething()

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のjsチュートリアル: