我有一个Observable监听URL,我switch
将它getRows()
给getRows()
,它返回一个Observable,用API参数从API中提取数据。我希望能够获得this.tableSource = this.urlParamService.getParameterGroup(this.parameterPrefix)
.distinctUntilChanged()
.map(p => this.getRows(p))
.switch()
.share();
所做的每个发射的订阅参考。这是为了在UI上显示加载指示器。
当前代码:
this.tableLoad = this.tableSource.take(1).subscribe((r) => this.rows = this.parseRows(r));
然后我明确地改变了我一直在调用的参数:
tableSource
但是我希望在外部实体操作URL时让组件更新,所以我应该订阅而不是共享getRows()
,所以每次调用{{1}}时如何获得订阅,是有可能吗?
答案 0 :(得分:0)
我设法通过这种方式解决了问题:
this.urlParamService.getParameterGroup(this.parameterPrefix)
.distinctUntilChanged()
.do(p => {
this.tableLoad = this.getRows(p).subscribe((r) => this.rows = this.parseRows(r));
})
.subscribe();
所以我停止尝试将两个Observable序列用作一个(尽管一个依赖于另一个),并且只是订阅了第二个作为第一个的副作用。