gpt4 book ai didi

带有 Promise 和 if 语句的 Angular Auth Guard

转载 作者:行者123 更新时间:2023-12-04 07:29:12 29 4
gpt4 key购买 nike

我想使用 guard 来决定用户是否可以导航到登录页面,但我知道我的逻辑是错误的,因为 Promise .
请参阅下面的我的代码。

  canActivate(): boolean | Observable<boolean> | Promise<boolean> {
if (!this.localStorage.getObject('isInitialized')) {
this.router.navigate(['/locaties']);
return true;
}
return false;
}
我知道我在做什么是错误的,但我缺乏关于解决这个问题的 promise 的知识。我需要做什么才能完成这项工作?
这是我的 localstorage.getObject() :
  // Returns object
async getObject(key: string) {
const ret = await Storage.get({ key: key });
return JSON.parse(ret.value);
}

最佳答案

如果你想在你的 can activate 方法中使用基于异步结果的条件,那么你可以使用 Promise。如果您打算使用本地存储中的直接值,则无需使用 promise。您可以执行以下操作以使用 promise ...

  canActivate(): boolean | Observable<boolean> | Promise<boolean> {
return new Promise(() => {
if (!this.localStorage.getObject('isInitialized')) {
this.router.navigate(['/locaties']);
// Do not allow the route
resolve(false);
} else {
// Allow the route
resolve(true);
}

});
}

关于带有 Promise 和 if 语句的 Angular Auth Guard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68040836/

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