【发布时间】:2019-08-02 23:45:47
【问题描述】:
在使用 rxjs 时,我经常订阅我的源 Observable 并使用 onData 和 onError 处理程序,附加一些逻辑来处理每种情况。看起来像:
this.myService.myObservable().subscribe(
() => this.onNextData(),
() => this.onErrorData()
);
然后(有时),在每个处理程序内部,我将执行相同的逻辑,例如,在成功时关闭模式和在失败时。
我看到有一个finalize 运算符,我可以通过管道将其执行一些基于onComplete 和onError 的逻辑。但是,这两种状态是否相同? Observable 在发出数据时是否一定要complete?
例子:
this.myService.myObservable()
// modalClose always happens on success and on failure (?)
.pipe(finalize(() => this.modalClose())
.subscribe(
() => this.onNextData(),
() => this.onErrorData()
);
【问题讨论】:
-
除了很好的答案,我还有一个“动作”流的例子,这里没有完成:stackblitz.com/edit/angular-todos-deborahk
userSelectedAction$Observable 每次用户从下拉菜单中选择一个用户时都会发出下。这个 Observable 永远不会完成。
标签: rxjs