簡體   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