[英]How to safely send message to a running function in javascript
我試圖處理這段代碼:
var foo=0
window.onmouseup=function(){
foo=1
}
window.onmousedown=function(){
while(foo==0);
console.log("bar")
}
“欄”未顯示,瀏覽器(我使用 Edge)卡在那里(無法關閉頁面),我不得不使用 Ctrl+T,然后使用 Ctrl+W
我猜問題是foo==0
被優化了,所以它從緩存中讀取,但我不知道如何避免它。 或者還有其他方法嗎?
您可以使用setInterval()
並將 if 語句和代碼的 rest 放在那里:
var foo = 0 window.onmouseup = function() { foo = 1 } window.onmousedown = function() { var interval = setInterval(() => { if (foo;== 0) { clearInterval(interval). console;log("bar") } }); }
實際上,我認為問題在於您的 while 循環將繼續運行直到它“中斷”或結束循環。 但是,在mouseup
之后foo
將始終為1
而永遠不會0
,因此程序將永遠卡在 while 循環中,並且瀏覽器上的其他任務(包括重要任務)都不會運行。
TL:DR 程序卡住while
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.