Angular 角度路由解算器只能毫不延迟地工作,存在可观察问题
当使用Angular 角度路由解算器只能毫不延迟地工作,存在可观察问题,angular,angular-router,Angular,Angular Router,当使用resolve:{key:ResolverService}解析组件的一些数据时,如果ResolverService立即返回一些数据(不使用observable或promise),组件将按预期在UI上加载。但是,如果解析器返回的是可观测值,那么即使可观测值得到下一个值,它也不工作 stackblitz示例: 在guard和resolver中返回observable的逻辑是相同的,但是由于某种原因,resolve似乎不起作用 已经检查过了,没什么帮助 对于给定场景的任何帮助,我们都表示感谢。
resolve:{key:ResolverService}
解析组件的一些数据时,如果ResolverService
立即返回一些数据(不使用observable或promise),组件将按预期在UI上加载。但是,如果解析器返回的是可观测值,那么即使可观测值得到下一个值,它也不工作
stackblitz示例:
在guard和resolver中返回observable的逻辑是相同的,但是由于某种原因,resolve似乎不起作用
已经检查过了,没什么帮助
对于给定场景的任何帮助,我们都表示感谢。谢谢解析程序返回的可观测必须完成。你的永远不会完成,所以导航永远不会发生 定义延迟观测值(将完成)的更简单方法是使用延迟管道:
return of('data from delayed').pipe(delay(1000));
检查更新的文件,我使用了observer.complete()。去做吧@是的,你当然可以。但它远没有我在回答中建议使用的那么优雅和简洁。我同意,但是
rxjs
imports把我的大脑搞乱了。其实很简单:所有东西(类型、工厂函数,比如observed,of)都是从“rxjs”导入的,除了操作符,(比如你放在管道中的所有东西(),比如delay)从“rxjs/operators”导入的。