首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从外部js调用函数内部方法

问从外部js调用函数内部方法
EN

Stack Overflow用户
提问于 2017-03-05 21:01:11
回答 1查看 444关注 0票数 0

请原谅我,因为我是JS编程的新手。

我有以下问题:

我的一个模块包含一个setInterval循环。当单击server.js按钮(打开,代码中的变量状态)时,此模块将由我的HTML调用。我想从server.js中断它的执行(关闭),但是它不能工作。

我知道这感觉像是一个重复的问题,但我已经搜索了很多在堆栈溢出中的信息,所有的问题都是指在同一个文件中执行和停止的代码。在我的例子中,我在外部文件(包含setInterval)中调用一个方法,并且我希望触发应该在该外部文件中运行的clearInterval!

简化代码如下:

action.js

代码语言:javascript
复制
module.a = function(milisec) {
    var myVar = setInterval( function() { do stuff }, milisec);
}
module.exports = methods;

我第一次尝试:

Server.js

代码语言:javascript
复制
// 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()。

我的第二次尝试:

action.js

代码语言:javascript
复制
methods.a = fuction(milisec) {
    var myVar = setInterval( function() { 
    console.log("I'm being executed");}, milisec);
    function stop() {
      clearInterval(myVar); 
    }
}
Module.exports = methods;

但我不知道如何引用我的方法中的函数.a在server.js文件中

我试过:

代码语言:javascript
复制
actions.a.stop() 

但根本不管用..。有可能吗?有办法在我的clearInterval中执行server.js吗?

感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2017-03-05 21:13:52

在methods.a()中声明myVar,使其成为该函数的本地作用域。尝试在函数之外声明myVar。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42613944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档