JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScript版のsleep()とは?自作sleep関数の実装方法を解説

JavaScriptには、他の多くのプログラミング言語に存在するようなネイティブのsleep(スリープ)関数が用意されていません。しかし、いくつかのテクニックを使えば、この制限を簡単に回避することが可能です。

最も手軽な方法のひとつが、setTimeoutとasync/awaitを組み合わせて、独自のsleep関数を作成することです。

実装例

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

// コールバックを使う場合
sleep(1000).then(() => console.log("waited 1 second!"))

// async / await を使う場合
const waitASec = async () => {
    await sleep(1000)
    console.log("waited 1 second!")
}
waitASec()

実行結果

waited 1 second!
waited 1 second!

コードの仕組み

このsleep関数は、引数として受け取ったミリ秒数をもとに新しいPromiseを返します。Promiseの内部ではsetTimeoutが呼び出され、指定した時間が経過したタイミングでresolveが実行されます。そのため、awaitキーワードと組み合わせることで、指定時間だけ処理を一時停止させることができるのです。

利用時の注意点

awaitを使用してsleep関数を待機させる場合は、必ずasync関数の中で呼び出す必要があります。一方、コールバック形式(then)であれば通常の関数内でも利用可能です。用途に応じて使い分けるとよいでしょう。

  1. JavaScriptのアラートボックスとは?基本的な使い方と実装例をわかりやすく解説

    アラートボックスとはアラートダイアログボックス(alert box)は、主にユーザーへ警告メッセージを伝えるために使われる仕組みです。例えば、テキストの入力が必須のフォームフィールドにユーザーが何も入力していない場合、バリデーション(入力チェック)の一環としてアラートボックスで警告を表示できます。もちろん、アラートボックスは警告に限らず、もっと親しみやすいメッセージを表示する用途にも活用できます。アラートボックスには「OK」ボタンが1つだけ表示され、ユーザーはそのボタンを押して処理を先へ進めます。alert()メソッドの基本構文アラートボックスは、window.alert()メソッド(通常は「

  2. JavaScriptのDateオブジェクトとは?作成方法と基本の使い方を解説

    Dateオブジェクトは、JavaScript言語に組み込まれているデータ型のひとつです。このオブジェクトを利用すると、日付や時刻の取得・操作を簡単に行うことができます。Dateオブジェクトは、new Date() コンストラクタを使って生成します。引数の渡し方によって、さまざまな形式で日付を作成できるのが特徴です。Dateオブジェクトの作成方法new Date() new Date(milliseconds) new Date(datestring) new Date(year, month, date[, hour, minute, second, millisecond])new Date