0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

javascriptでタイマー秒後に遅延実行

Last updated at Posted at 2021-10-21

# 経緯
定期的に送られてくるjsonメッセージに対して、受信後設定時間以内に再度受信しなければ
発火させる関数を考える必要があった。

フローチャートはこんな感じ。 発火させたい処理は関数B
Untitled Diagram (1).jpg

# コード
私の場合はjsonメッセージを受信した場合に関数Aが毎回発火していたので、
関数Aの中に下記コードを記述しました。

// 下記宣言は関数Aの外で行っています
let countTimer = false

// 以下は関数Aの処理(何度も繰り返される)

if (countTimer != false) clearTimeout(countTimer)
countTimer = setTimeout(function () {
  // ここに行いたい処理を書く
  条件 B
  countTimer = false;
}, 5000)

関数Aが発火後、countTimerで時間を計測。5秒間に再度関数Aが発火しなければ
関数Bが発火するような内容です。

# 参考
Javascriptでタイムリセット機能付きで遅延実行させる方法
https://xov.jp/e/281/

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?