gpt4 book ai didi

javascript - 使用 window.location.reload 进行递归异步等待回调

转载 作者:行者123 更新时间:2023-12-02 23:25:10 24 4
gpt4 key购买 nike

我正在等待一些 API 回调,这些回调返回 401 响应以及注销回调并重定向到登录页面。但是,它会在注销回调中继续执行 window.location.reload ,因为该 API 在上一页中被一次又一次调用。我该怎么做才能解决这个问题?

try {
// Run all actions here that needed to be executed at first
await this.someMethods()
await this.someMethods()
await this.someMethods()
await this.someMethods()
await this.someMethods()
} catch (error) {
// Check for login session
const response = Object.assign({}, error)
if (response.response.status === 401 || response.response.status === 401) {
AuthService.logout() //LOGOUT CALLBACK
this.$toasted.show('Season Expired!. Please Re-Login', {
position: 'top-center',
duration: 2500,
type: 'error'
})
}
}

logout () {
window.localStorage.clear()
window.location.reload(true)
router.push('/login')
}

最佳答案

可能你需要使用 Promise.all

Promise.all([promise1, promise2, promise3]).then(function(values) {
console.log(values);
});

这是你的例子

try {
// Run all actions here that needed to be executed at first
await Promise.all([this.someMethods1() , this.someMethods2() ,this.someMethods3()]) ;

} catch (error) {
// Check for login session
const response = Object.assign({}, error)
if (response.response.status === 401 || response.response.status === 401) {
AuthService.logout() //LOGOUT CALLBACK
this.$toasted.show('Season Expired!. Please Re-Login', {
position: 'top-center',
duration: 2500,
type: 'error'
})
}
}

这样错误 block 只会进入一次

关于javascript - 使用 window.location.reload 进行递归异步等待回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770017/

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