簡體   English   中英

While循環未在回調內執行

[英]While loop not executing inside callback

內在的承諾

.catch((message) => {
        console.log(message)
        var newUrl = url
        chrome.tabs.create({url: newUrl}, function(response) {
            console.log(response.status)
            status = 'loading'
            while (status == 'loading') {
                setTimeout(function() {
                    console.log(response.status)
                    status = response.status
                }, 3000)
            }
        })
    })

我正在嘗試以這樣的方式編寫捕獲內容:它將打開一個新頁面,等待它完成加載,然后獲取新的Cookie

我覺得我正在服用瘋狂葯丸,因為這似乎非常簡單。 但是它永遠不會打印出response.status

我希望它等待每3秒檢查一次response.status ,一旦頁面loaded完畢,它將結束循環。

我究竟做錯了什么?

您編寫它的方式已經形成了無限循環,這將使大量setTimeout放入瀏覽器的事件隊列中。

setTimeout也將代碼放在那里,但是帶有“ 3sec plus”延遲注釋。

實際上,您告訴瀏覽器-為我設置無限超時,完成后,請在3秒鍾后執行console.log。 這不會發生。

您可能應該改用setInterval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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