RxJS finalize operator vs tap({ finalize: () => {} })



A和B有什么不同吗?有没有一种情况下,其中一种的行为与另一种不同?

A)

observableHere
.pipe(
finalize(() => {
// Do stuff here
})
)

B)

observableHere
.pipe(
tap({
finalize: () => {
// Do stuff here
})
})
)

Tap可以让你钩入源可观察对象上的一系列事件

interface TapObserver<T>: {
next: (value: T) => void;
error: (err: any) => void;
complete: () => void;
subscribe: () => void;
unsubscribe: () => void;
finalize: () => void;
}

如果你对可观测到的各种排放物产生副作用,可能更容易将它们组合在一个单一的TapObserver中。否则,只使用finalize操作符可能会更清楚。


是否存在一个与另一个行为不同的情况?

他们不应该有任何不同的行为。

Finalize in tap对我来说完全没有意义。

唯一的区别是它将在最后的finalize之前被调用。

最新更新