我正在使用RxJS做一个分页器,我会在调用新页面的任何时候使用主题进行集中。在每个事件中,我使用exhaustMap来检索页面。这样可以防止getPage http调用多次针对同一页面被触发。
this._nextPage$.pipe(
exhaustMap(nextPageNumber => this.getPage(nextPageNumber))
).subscribe();
但我还要在每个http待处理中显示一个微调器。
使用此代码,如何获得合并的http Observable的订阅? (为了将待处理组件绑定到订阅)
提前谢谢![编辑]
我需要/更喜欢使用保留暂挂状态的订阅,原因有两个:
以下是显示待处理操作的组件的简单示例
@Component({
selector: 'anie-busy',
templateUrl: './busy.component.html',
styleUrls: ['./busy.component.scss']
})
export class BusyComponent implements OnChanges {
@Input() subscription;
isPending = false;
constructor() { }
ngOnChanges() {
if (this.subscription) {
this.isPending = true;
this.subscription.add(() => this.isPending = false);
} else {
this.isPending = false;
}
}
}
答案 0 :(得分:0)
你可以在两者之间管道运算符来完成它。
this._nextPage$.pipe(
tap(()=>{//loading},
exhaustMap(nextPageNumber => this.getPage(nextPageNumber),
tap(()=>{// stop loading})
).subscribe();