【发布时间】:2017-07-26 08:32:57
【问题描述】:
编辑:在 RxJs 6 之前,tap 被称为 do 。更新了标题以反映点击。
我想了解使用 Observables 的 .subscribe 和 .do 方法的最佳做法是什么。
例如,如果我需要在从服务器加载初始数据后做一些工作
const init$: Observable<MyData> = this._dataService.getData();
init$
.do((initialData: MyData) => {
this.data = initialData; // at this step I am initializing the view
})
.switchMap(() => loadExtraData)
.subscribe((extraData) => {
doSomething(extraData, this._data); // I need this._data here
});
.subscribe 我也可以这样做
const init$: Observable<MyData> = this._dataService.getData()
.shareReplay(1);
init$
.subscribe((initialData: MyData) => {
this.data = initialData; // at this step I am initializing the view
})
init$
.combineLatest(loadExtraData)
.subscribe(([initialData, extraData]) => {
doSomething(extraData, initialData); // I need this._data here
});
哪个更好,为什么?
【问题讨论】:
标签: javascript angular rxjs