typescript 在rxjs中使用add和finalize有什么区别?

yi0zb3m4  于 2023-08-07  发布在  TypeScript
关注(0)|答案(1)|浏览(149)

这两个代码片段似乎具有相同的效果:
1.加

this.test$.pipe(take(1)).subscribe().add(() => console.log('added'));

字符串
1.定案

this.test$.pipe(take(1), finalize(() => console.log('finalized'))).subscribe();


使用其中一个比使用另一个更好吗?

xn1cxnb4

xn1cxnb41#

add还有更多的用途,它允许您附加订阅,以便单个unsubscribe也可以取消订阅所有附加的订阅。

const subscription = observable1.subscribe(x => console.log('first: ' + x));
const childSubscription = observable2.subscribe(x => console.log('second: ' + x));
 
subscription.add(childSubscription);
 
setTimeout(() => {
  // Unsubscribes BOTH subscription and childSubscription
  subscription.unsubscribe();
}, 1000);

字符串

相关问题