首页 > 解决方案 > Angular ngrx - 和 Rxjs combineLatest 中的 Router.Events 不起作用

问题描述

我遇到了一个我无法解决的问题:

onSelectCompany() {
 combineLatest([this.idCompany$, this.idUser$, this.router.events]).subscribe(res => {
   if(res[2] instanceOf NavigationEnd){
     this.router.navigateByUrl(`get-info/${res[0]/res[1]`)
   }
 })
}

我在我的组件的 ngOnInit 上调用这个函数,我有两个 observables 我需要像我的 url 的参数,只有当我没有刷新页面时我才需要在这个 url 上导航。但是我写的函数不起作用,我没有错误但是在调试中执行没有进入订阅。为什么?

标签: angulartypescriptrxjsobservablengrx

解决方案


在该函数执行后,所有 3 个 observables 都必须发出一些东西。

来源:https ://www.learnrxjs.io/learn-rxjs/operators/combination/combinelatest

Be aware that combineLatest will not emit an initial value 
until each observable emits at least one value.

1 解决方案可能是将函数从ngOnInit字段级别或构造函数移动


推荐阅读