JS 프로그래밍의 초보자부터 나와 함께하시기 바랍니다. 내 모듈의외부에서 js 메서드로 호출 함수를 호출
하나는 setInterval을 루프를 포함
나는 다음과 같은 문제가있다. HTML 버튼을 클릭하면이 모듈이 server.js
에 의해 호출됩니다 (ON, 코드의 변수 상태). server.js
에서 실행 (OFF)을 중단하고 싶지만 작동하지 않습니다.
중복 질문처럼 느껴지 긴하지만, Stack Overflow 및 모든 질문을 참조하는 정보를 많이 검색했습니다. 동일한 파일 내에서 실행 및 중지되는 코드 내 경우에는 외부 파일 (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
을 실행하는 방법이 있습니까?
코드가 실행되는 위치와 파일이 분리되는 이유를 알려주십시오. 두 파일이 동일한 HTML 문서에 임베드되어 있거나 NodeJS 서버에서 원격으로 실행중인'server.js '입니까? – Martin
둘 다 동일한 HTML에 포함되어 있습니다! 나는 beaglebone에서 일하고있어 코드를 실행하기위한 서버를 생성하는 socket.io를 이용하고있다 .. –