如何停止时间间隔在我的功能
How to stop time interval in my function?
我有这个函数:
function timedFunction(functionString,timeoutPeriod) {
setTimeout(functionString+"timedFunction('""+functionString+"'","+timeoutPeriod+");",timeoutPeriod);}
这个函数调用:
timedFunction("startStopky();",1000);
startStopky ();是一个函数,我希望在指定的时间间隔内重复运行。一切都运行得很好,但是如果我想停止这个间隔,我必须像下面这样停止:
for (var i = 1; i < 99999; i++) {
window.clearInterval(i);
}
不幸的是,这将停止所有的间隔,我只想停止一个特定的。我该怎么做呢?
与其递归调用timedFunction
,不如这样做:
var intervalId = setInterval(startStopky, 1000);
和清除它只需执行:
clearInterval(intervalId);
setTimeout
函数返回一个超时ID,您可以与clearTimeout
一起使用该ID来删除该超时。间隔也是如此,但在这种情况下,它是setInterval
和clearInterval
的组合。
例如:
var t = setTimeout(yourFunction, 1000);
clearTimeout(t);
var i = setInterval(yourFunction2, 500);
clearInterval(i);
您有一个Timeout,但是您正在清除一个Interval。clearInterval
清除间隔,不清除超时。
你想要window.clearTimeout(timeoutId)
如果您想停止单个进程,您可以使用该间隔的processId。
window.clearTimeout("13");
你真的不应该使用字符串来做这些:
function timedFunction(fn, interval) {
var timerHandle;
function runIt() {
fn();
timerHandle.id = setTimeout(runIt, interval);
}
return timerHandle = { id: setTimeout(runIt, interval) };
}
那么你可以这样调用它:
var handle = timedFunction(startStopky, 1000);
停止进程:
clearTimeout(handle.id);
相关文章:
- 简单的身体加载功能不会触发我的功能
- JQuery破坏了我的功能吗
- 如何使我的功能360度旋转并上下移动
- 黄瓜JS可以看到我的功能,但似乎没有运行这些步骤
- 我的功能”;clear()”;没有接到电话
- 如何在我的功能场景Cucumber.js中使用标签
- 我如何检查提交是否被点击,这样我的功能就不会触发
- 为什么我的功能显示不正确的数据
- 我的功能无法重启的原因是什么?
- 为什么我的功能不重新运行新的参数从新的点击
- 我的功能不是打印任何东西
- 为什么我的功能不显示文件扩展名
- 我如何使用我的功能从我的.js文件在我的玉文件
- 淘汰赛,为什么不;我的功能在点击事件时启动
- 我正试图找出如何使我的功能一个接一个地运行.但这并没有奏效
- 为什么数组推不工作在我的功能
- 我如何调试我的功能只是使用茉莉花
- 如何停止时间间隔在我的功能
- 我的功能或按钮不起作用
- 点击后不工作我的功能