gpt4 book ai didi

javascript - while循环不在回调内部执行

转载 作者:行者123 更新时间:2023-11-29 18:42:11 25 4
gpt4 key购买 nike

在 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)
}
})
})

我正在尝试以打开新页面的方式编写 catch,等待它完成加载,然后获取新的 cookie

我觉得我正在服用疯狂的药丸,因为这看起来非常简单。但是它永远不会打印出 response.status

我希望它等待每 3 秒检查一次 response.status,一旦页面 loaded 它将结束循环。

我做错了什么?

最佳答案

按照您编写它的方式,您创建了一个无限循环,这会将大量的 setTimeout 放入浏览器的事件队列中。

setTimeout 也将代码放在那里,但它带有“3sec plus”延迟注释。

实际上你告诉你的浏览器 - 为我设置无限超时,完成后,请在 3 秒后执行 console.log。这不会发生。

您可能应该改用 setInterval

关于javascript - while循环不在回调内部执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56259834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com