【发布时间】:2016-08-10 20:45:01
【问题描述】:
CanActivate class 允许 Observable<boolean> 返回类型。
对我来说唯一有意义的用例是:
-
CanActivate可以“异步”阻止正在显示的路线,直到调用observer.next(true|false)。 - 我可以显示
CanActivate允许的路线,然后从我的应用程序的另一部分推送observer.next(false)并让该路线消失。
但是,第 1 点有效,但第 2 点无效。因此,除了方便之外,我找不到CanActivate 应该允许Observable<boolean> 的返回类型的原因——这反过来又使API 复杂化。如果CanActivate 只允许boolean 返回类型和Promise,那会更简洁。
请注意,我是 Angular、RxJS 和所有基于 Node 的新手,所以我可能会遗漏一些显而易见的东西。我花了一段时间试图从CanActivate 中提取Observer<boolean> 返回类型所暗示的功能。
【问题讨论】:
-
他们决定不使用 Promises,用 Observables 代替它们。你当然可以拥有一个在完成之前只返回一个值的 Observable,例如,所有的 http 调用现在都是 Promise。
-
为什么不问问那些构建了 v3 路由器所基于的路由器的开发人员呢? Create an issue,问这个问题,你可能会得到答案。
-
好的就行。不确定这是不是一个愚蠢的问题。
标签: javascript angular rxjs rxjs5