在许多文章中,我发现tap
运算符是执行副作用的好方法。我的问题是关于使用订阅和点击执行副作用之间的区别。以下是实际上相同的示例:
this.store$
.pipe(tap(x => {
this.store = x;
}));
this.store$
.subscribe(x => {
this.store = x;
});
性能是否有所不同,或者有任何理由使用这些方法之一?
答案 0 :(得分:0)
在Angular环境中。 您可能有一个组件,例如MyComponent。该组件MyService也有一项服务。该服务负责MyComponent中的某些复杂操作。现在,您将在MyComponent中以
进行订阅$myObs.subscribe((val) => //do something );
但是服务中可能也需要相同的数据,因此您在服务中将其定义为
$myObs.pipe(tap((val) => // do something with data in service));
订阅将在组件中完成,但是通过点击您也可以在服务中分配数据成员变量。