在 promise 的捕获范围内
.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
,一旦页面加载
,它将结束循环。
我做错了什么?
最佳答案
按照您编写的方式,您已经创建了一个无限循环,这会将大量 setTimeout
放入浏览器的事件队列中。
setTimeout
也将代码放在那里,但它带有“3sec plus”延迟注释。
在实践中,你告诉你的浏览器——为我设置无限超时,完成后,请在3秒后执行console.log。这不会发生。
您可能应该使用setInterval
来代替
关于javascript - While 循环未在回调内执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56259834/