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(boolean) 数据类型,则需要阻塞该页面。

    关于javascript - 为什么Angular 2的CanActivate返回一个Observable <boolean>而不是Promise?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38883203/

    10-11 13:52