JavaScriptでsleep()を実現する方法とは?awaitの使い方を解説
JavaScriptには、C言語やPythonのような標準のsleep()関数は用意されていません。その代わりとなるのが「await」です。awaitを使用すると、現在実行中のasync(非同期)関数の処理を、指定した時間だけ一時停止することができます。
具体的な実装方法としては、setTimeout()をPromiseでラップした関数を作成し、それをawaitで呼び出します。これにより、sleepとまったく同じ動作を実現できるのです。
サンプルコード
以下のコードを実行して、JavaScriptでのsleepの実装を実際に確認してみましょう。
ライブデモ
<!DOCTYPE html>
<html>
<body>
<script>
function setSleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function Display() {
document.write('Wait for 5 seconds!');
await setSleep(5000);
document.write('After 5 seconds!');
}
Display();
</script>
</body>
</html>コードの解説
このコードの仕組みを順番に見ていきましょう。
まず、setSleep()関数は引数で受け取ったミリ秒後にresolveされるPromiseオブジェクトを返します。次に、async関数として定義されたDisplay()の中でawait setSleep(5000)を呼び出すことで、処理がちょうど5秒間停止します。
その結果、「Wait for 5 seconds!」というメッセージが表示された後、5秒経過してから「After 5 seconds!」が出力されます。このように、awaitとPromiseを組み合わせれば、同期処理のように読みやすいコードで待機時間を制御できるのが大きなメリットです。
-
JavaScript DOMとは?基本の仕組みと要素の取得方法をわかりやすく解説
JavaScriptのDOM(Document Object Model:ドキュメントオブジェクトモデル)は、Webページ上のHTML要素を表現する仕組みです。DOMはインターフェースとして機能し、ページのコンテンツやスタイルを変更することで、Webページを自由に操作できるようにします。 DOMにアクセスするには、Webページ上で右クリックして「検証(Inspect)」を選択します。すると画面の右側または左側にパネルが表示され、現在閲覧しているページのHTML要素を確認できます。要素にマウスカーソルを合わせると、ページ上の該当部分がハイライトされるため、どの要素がページのどのセクションに対応
-
JavaScriptの無名関数(匿名関数)とは?基本の書き方と使い方をわかりやすく解説
無名関数(匿名関数)とはJavaScriptには、関数を定義する方法として「関数宣言」と「関数式」があります。このうち関数式は、関数宣言とほぼ同じ構文で記述でき、さらに次の2種類に分けられます。名前付き関数式:関数に名前が付けられているもの(コールスタック上で名前が表示されるため、デバッグ時に便利です)無名関数(匿名関数):関数に名前を付けずに定義するもの本記事では、後者の「無名関数」について、基本的な書き方と使い方を解説します。無名関数の基本的な書き方無名関数は、functionキーワードで関数を定義し、そのまま変数に代入する形で記述します。関数名を指定しない点が最大の特徴です。var my