RxJS - Tap与Subscribe

4

在许多文章中,我发现 tap 操作符是执行副作用的一种好方法。我的问题是使用subscribe和tap执行副作用之间的区别。以下示例实际上正在执行相同的操作:

        this.store$
           .pipe(tap(x => {
               this.store = x;
           }));

        this.store$
           .subscribe(x => {
              this.store = x;
           });

这两种方法在性能方面有什么区别,或者使用其中一种方法有什么原因吗?


3
可能是 tap() vs subscribe() to set a class property 的重复问题。 - Jameel Moideen
1个回答

1
在Angular上下文中。您可能有一个名为MyComponent的组件。还有一个服务与该组件相关,名为MyService。此服务负责MyComponent中的某些复杂操作。现在,在MyComponent中进行订阅的代码如下:
$myObs.subscribe((val) => //do something );

但是你的服务可能也需要相同的数据,所以你可以在服务中定义它

$myObs.pipe(tap((val) => // do something with data in service));

订阅将在组件中完成,但使用 tap 您也可以将数据成员变量分配给您的服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接