簡體   English   中英

如何安全地將消息發送到javascript中正在運行的function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM