我有一个 chrome 扩展程序,我希望用户在单击按钮时导航到某个页面,我从服务器获取 URL,所以我需要等待 promise 解决以知道将用户重定向到哪里。 我尝试在 promise 的
then
部分执行此操作,但意识到它不起作用,因为窗口打开仅在由于用户操作而在主线程上触发时才起作用(如 here 所解释)。
我想出的一个解决方案是使用
setInterval
并且出于某种原因它有效。我不知道为什么,很想更好地理解,也许它是片状的,我不应该使用它。
我的代码看起来有点像这样
const onClick = () => {
const urls: string[] = []
somePromise.then((url) => {
urls[0] = url
})
setInterval(() => {
const possibleURL = urls[0];
if (possibleURL) {
window.open(possibleURL, '_top')
}
}, 500)
}
提前致谢