Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果超时在javascript中运行,如何停止超时_Javascript - Fatal编程技术网

如果超时在javascript中运行,如何停止超时

如果超时在javascript中运行,如何停止超时,javascript,Javascript,我的超时设置如下所示: var someObj = { init: function() { someObj.timeout(); someObj.someWork(); }, timeout : setTimeout(function() { someObj.myFunc(); }, 15000), myFunc: function() { console.log('myFunction called');

我的超时设置如下所示:

var someObj = {

  init: function() {

    someObj.timeout();
    someObj.someWork();

  },

  timeout : setTimeout(function() {
        someObj.myFunc();
    }, 15000),

  myFunc: function() {
        console.log('myFunction called');
    },

  someWork: function(){
    console.log('some work');
    if(this.timeout !== null){
        console.log('clearing timeout...');
        clearTimeout(this.timeout);
    }
  }

}

$(function() {
    someObj.init();
});
如果超时被分配给
timeout
变量且不为null,我想停止超时

JSIDLE链接:

可能吗

更新:

这是分配超时并清除超时的有效方法吗

var someObj = {

 timeout :null,

  init: function() {
    someObj.make();
    someObj.someWork();
  },

  make: function(){
    this.timeout = setTimeout(function() {
        console.log('myFunction called');
    }, 15000)
  },

  someWork: function(){
    console.log('timeout is ', this.timeout);
    if(this.timeout !== null){
        console.log('clearing timeout...');
        clearTimeout(this.timeout);
    }
  }
}

$(function() {
    someObj.init();
});

更新的链接:

clearTimeout()
阻止使用setTimeout()设置的函数执行。

声明另一个属性
timeoutId:null
并检查它是否存在,然后清除它

var someObj={
timeoutId:null,
init:function(){
this.timeoutId=this.timeout();
someObj.someWork();
},
超时:函数(){
返回setTimeout(函数(){
someObj.myFunc();
}, 15000)
},
myFunc:function(){
log('myFunction called');
},
someWork:function(){
console.log(“一些工作”);
if(this.timeoutId){
log('清除超时…');
clearTimeout(this.timeoutId);
}
}
}
$(函数(){
someObj.init();
});

你用谷歌搜索过吗?使用clearTimeout()它的可能副本是现有问题的副本实际上,如果你们仔细阅读这个问题,它不仅仅要求使用
clearTimeout
方法。。。它甚至已经出现在他发布的代码中。@Durga更新了我的问题。这是分配和清除超时的有效方法吗?你能帮我吗check@Satyadev这里是更新,在清除超时后,您将该id分配给null。