javascript sleepを自作して待機時間を作る
- 2020.10.18
- javascript
- javascript

javascriptで、PromiseとsetTimeoutを使用してsleepを自作して待機時間を作るサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 84.0.4147.105
sleep機能作成
非同期処理のPromiseとsetTimeoutを使用すると、待機時間を作ることが可能です
1 2 3 4 5 6 7 8 9 10 11 12 |
let hoge = () => console.log('hoge'); const sleep = (time, func) => { return new Promise(resolve => { setTimeout(() => { resolve(func()) }, time * 1000) }) } // 5秒まって、hogeを実行する sleep(5, hoge) |
サンプルコード
以下は、
「実行」ボタンをクリックすると、5秒待機した後にテキストを表示する
サンプルコードとなります。
※cssには「bootstrap material」を使用してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>mebeeサンプル</title> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons"> <link rel="stylesheet" href="https://unpkg.com/bootstrap-material-design@4.1.1/dist/css/bootstrap-material-design.min.css"> </head> <style> .main { margin: 0 auto; margin-top: 200px; display: flex; flex-direction: column; align-items: center; font-size: 30px; } </style> <script> // 実行する関数 let foo = () => document.getElementsByClassName("badge")[0].textContent='5秒経過しました'; // sleep const sleep = (time, func) => { return new Promise(resolve => { setTimeout(() => { resolve(func()) }, time * 1000) }) } function hoge() { sleep(5, foo) } window.onload = function () { // ボタンを取得 var elmbtn = document.getElementById('btn'); // クリックイベントを登録 elmbtn.onclick = function () { hoge(); }; } </script> <body> <div class="main"> <h2><span class="badge badge-success"></span></h2> <button id="btn" type="button" class="btn btn-raised btn-danger"> 実行 </button> </div> </body> </html> |
待機時間が作れていることが確認できます。

-
前の記事
vuepressをインストールしてブログを作成する手順 2020.10.18
-
次の記事
javascript 配列から重複したデータを抽出する 2020.10.18
コメントを書く