Angular RouteResolver只能立即使用,存在可观察到的问题

时间:2018-12-30 18:56:40

标签: angular angular-router

使用resolve :{ key : ResolverService}解析组件的某些数据时,如果ResolverService立即返回一些数据(不使用observable或promise),则会按预期将组件加载到UI上。但是,如果解析器返回的是Observable,则即使该Observable获得下一个值,它也无法工作;

关于stackblitz的示例:

https://stackblitz.com/edit/ng-delayed-resolver-issue

在guard和resolver中返回可观察的逻辑是相同的,但是由于某种原因,解析似乎无效。

已经检查了此Router Resolver not rendering component,并没有太大帮助。

对于给定方案的任何帮助,我们将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

解析器返回的可观察对象必须 complete 。您的工作从未完成,所以导航永远不会发生。

一种更简单的方法来确定可观察到的延迟(将完成)是使用延迟管道:

return of('data from delayed').pipe(delay(1000));