开关可观察数据流,抢订阅每个下
问题描述:
我有一个可观测听的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();
所以我不再试图同时使用观察序列为一个(即使一个依赖于其他),并刚刚订阅了第二的副作用的第一。