繁体   English   中英

什么是更好的和更有效的方法来执行此功能的阻塞?

[英]What is a better and more efficient way to do this blocking of a function?

var x = 2;

setInterval(function() {
    while(z){}; //do nothing if z = 1, therefor stalling and blocking the next steps:
    change(x++);
    if (x > 39) x = 1;
}, 7000);

程序中的其他位置:按下暂停按钮,将z切换(异或)到1或0以阻止间隔功能。 否则,如果z == 0,则跳过此步骤。

我知道,由于多种原因,这效率低下且编程错误,可能会导致JS问题,但希望做一些能完成相同任务的事情。 我是一名强大的C程序员,但是javascript对我来说是全新的,解决这个问题的C语言方法似乎都不在我的javascript能力范围内。 我基本上是想在按下暂停按钮时暂停间隔功能。

编辑:change()函数很长,并不重要,它可以是任意指令集,感谢您的回应

最好存储间隔ID

var x = 2;

var intervalID = setInterval(function() {
    change(x++);
    if (x > 39) x = 1;
}, 1000);

并按下暂停按钮时-使用clearInterval实现暂停

clearInterval(intervalID);

https://developer.mozilla.org/zh-CN/docs/Web/API/WindowTimers/clearInterval

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM