私はJSプログラミングの初心者なので、ご容赦ください。
次の問題があります。
モジュールの 1 つに setInterval ループが含まれています。このモジュールはserver.js
、HTML ボタンがクリックされたときに my によって呼び出されます (ON、コード内の可変状態)。から実行を中断(OFF)したいのserver.js
ですが、うまくいきません。
重複した質問のように感じますが、スタック オーバーフロー内の情報をたくさん検索しました。すべての質問は、同じファイル内から実行および停止されているコードを参照しています。私の場合、外部ファイル ( を含むsetInterval
) でメソッドを呼び出しており、その外部ファイルで実行する必要があるメソッドをトリガーしたいclearInterval
!
以下の簡略化されたコード:
action.js
module.a = function(milisec) {
var myVar = setInterval( function() { do stuff }, milisec);
}
module.exports = methods;
私の最初の試み:
サーバー.js
// var state is a button on my HTML
var actions = require('./actions');
If (state == 1)
{ actions.a(milisec) }
If (state == 0)
{ clearInterval(myVar) }
しかし、うまくいきませんでした。また、理由も明らかだと思います。コードには、どこから を取得したのかわかりません。myVar
基本的に、モジュール内から関数を呼び出して を停止する必要があると思います。そのため、メソッドsetInterval
に関数を含めました。stop()
私の2回目の試み:
action.js
methods.a = fuction(milisec) {
var myVar = setInterval( function() {
console.log("I'm being executed");}, milisec);
function stop() {
clearInterval(myVar);
}
}
Module.exports = methods;
server.js
しかし、ファイルのmethods.a内の関数を参照する方法がわかりません
私はもう試した:
actions.a.stop()
しかし、それはまったく機能しません..それは可能ですか?clearInterval
で実行する方法はありserver.js
ますか?
あなたの助けに感謝