开关可观察数据流,抢订阅每个下

问题描述:

我有一个可观测听的URL,我switch它荷兰国际集团的getRows()它返回一个可观察的数据拉从与URL参数的API回来。我希望能够获得getRows()所做的每个发射的订阅参考。这是为了在用户界面上显示加载指示器。开关可观察数据流,抢订阅每个下

当前的代码:

this.tableSource = this.urlParamService.getParameterGroup(this.parameterPrefix) 
    .distinctUntilChanged() 
    .map(p => this.getRows(p)) 
    .switch() 
    .share(); 

然后明确的时候我已经改变了参数,我一直在呼吁:

this.tableLoad = this.tableSource.take(1).subscribe((r) => this.rows = this.parseRows(r)); 

但我想启用组件更新时,外部实体操纵网址,所以我应该订阅而不是共享tableSource,那么我怎样才能得到一个订阅,每次我打电话getRows(),这可能吗?

我设法解决这个问题是这样的:

this.urlParamService.getParameterGroup(this.parameterPrefix) 
    .distinctUntilChanged() 
    .do(p => { 
     this.tableLoad = this.getRows(p).subscribe((r) => this.rows = this.parseRows(r)); 
    }) 
    .subscribe(); 

所以我不再试图同时使用观察序列为一个(即使一个依赖于其他),并刚刚订阅了第二的副作用的第一。