如果超时在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。