私はJSプログラミングの初心者ですので、私に同行してください。外部からのメソッドの呼び出し関数ja
私は次のような問題があります。私のモジュールの
一つはのsetIntervalループが含まれています。 HTMLボタンがクリックされると、このモジュールはserver.js
によって呼び出されます(ON、コード内の可変状態)。私はserver.js
からその実行(OFF)を中断したいと思いますが、それは動作しません。..
私はそれが重複した質問のように感じているけど、私は、スタックオーバーフロー内部の情報のための多くのことを検索しましたし、すべての質問を参照してください。同じファイル内でコードが実行され、停止することがあります。私の場合、外部ファイル(setInterval
を含む)でメソッドを呼び出していますが、その外部ファイルで実行されるclearInterval
をトリガーしたいと思います。
簡体コード:
は私の最初の試み
module.a = function(milisec) {
var myVar = setInterval(function() { do stuff }, milisec);
}
module.exports = methods;
action.js:
Server.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()
という関数が含まれています。
私の第二の試み:
が
methods.a = fuction(milisec) {
var myVar = setInterval(function() {
console.log("I'm being executed");}, milisec);
function stop() {
clearInterval(myVar);
}
}
Module.exports = methods;
action.jsしかし、私はserver.js
ファイル
私に私のmethods.a内の関数を参照する方法がわかりません試しました:
actions.a.stop()
でも全く動作しません。 それは可能ですか? server.js
にclearInterval
を実行する方法はありますか?
は、あなたはそれがその関数に対してローカルスコープの作る、)(methods.aの内側myVarを宣言しているあなたの助け
コードの実行場所とファイルが別々の理由について説明してください。両方のファイルが同じHTML文書に埋め込まれているのか、NodeJSサーバー上でリモートで実行されている 'server.js'ですか? – Martin
は両方とも同じHTMLに埋め込まれています!私はビーグルボーンに取り組んでおり、socket.ioを利用してコードを実行するためのサーバを作成しています。 –