CanActivate
class允许 Observable<boolean>
返回类型。
唯一对我有意义的用例是:
-
CanActivate
可以“异步”阻止显示的路由,直到observer.next(true|false)
被称为。 - 我可以显示一条路线
CanActivate
然后允许推送observer.next(false)
从我的应用程序的另一部分并让该路线消失。
但是,第一点有效但第二点无效。因此我找不到 CanActivate
的原因应该允许返回类型 Observable<boolean>
除了方便之外——这反过来又使 API 复杂化。如果 CanActivate
会更干净只允许 boolean
返回类型和 Promise
.
请注意,我是 Angular、RxJS 和所有基于 Node 的新手,所以我可能会遗漏一些显而易见的东西。我花了一段时间试图从 CanActivate
中提取功能那Observer<boolean>
返回类型暗示。
最佳答案
在 AngularJS 2 中,几乎每个异步操作都会返回 Observable。因为您可以实现自己的 CanActivate,所以您可能希望通过服务器访问来实现。例如,检查服务器中的管理员凭据。你可以看到类似的例子 here .
如果此方法返回 bool 数据类型,您需要阻止该页面才能这样做。
关于javascript - 为什么 Angular 2 的 CanActivate 返回 Observable<boolean> 而不是 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38883203/