【发布时间】:2019-04-24 07:32:33
【问题描述】:
在我当前的项目中,我有一个可观察的返回值,我必须根据可观察的返回值更新我的局部变量。
我看到了两种方法,要么直接订阅我的 observable,要么使用 pipable 运算符。
根据您的经验/知识,最佳做法是什么?
第一种方法(直接订阅):
this.myObservable$.subscribe(value=> {
this.myValue = value;
});
第二种方法(使用 pipable 运算符):
this.myObservable$.pipe(
tap(value=> this.myValue = value)
).subscribe();
【问题讨论】:
-
我认为 SO 不是问它的正确地方。在这里试试:codereview.stackexchange.com
-
鉴于第一个更简单,您为什么要考虑第二个?除非您确实需要应用一些转换,否则地图是多余的。
-
第一个是正确的。
map用于将一个值映射到从其回调返回的另一个值,它不应执行任何副作用。 -
因为 Observables 是惰性的 - 它们在订阅之前不会启动 - 所以你应该使用 .subscribe 来执行一些操作
标签: angular rxjs rxjs-pipeable-operators