gpt4 book ai didi

rxjs - 为什么 withLatestFrom RxJS 方法不是静态的?

转载 作者:行者123 更新时间:2023-12-01 15:23:23 29 4
gpt4 key购买 nike

RxJS withLatestFrom是一个实例方法。必须更新/创建 Observable 的实例才能调用该方法。

merge方法是静态方法。不需要实例。

为什么 RxJS withLatestFrom 不是静态方法而是实例方法?

最佳答案

我认为一个很好的例子是 combineLatest 运算符,它同时作为静态方法和实例方法存在。源 Observables 到 combineLatest 的顺序并不重要。它的内部结构以相同的方式工作并且输出将是相同的(只是结果数组中值的顺序将不同,这是无关紧要的)。这同样适用于 concatmergezipforkJoin 等。

但是对于 withLatestFrom 运算符,它是不同的,Observables 的顺序很重要。有一个源 Observable 控制操作符何时发出。如果您更改顺序,它会产生不同的结果。例如,如果您有以下内容:

Observable.withLatestFrom(o1, o2, o3)

这意味着您还可以使用以下内容:

Observable.withLatestFrom(...observables)

现在您无法知道源是哪个 Observable,并且很难调试正在发生的事情。

所以之所以没有Observable.withLatestFrom静态方法是因为它没有多大意义。 Observables 的顺序很重要,它只会让事情变得更加困惑。

出于同样的原因,其他运算符(例如 bufferwindow)即使没有技术限制也没有静态形式。它只会让您编写更多命令式代码,而不是简单地链接运算符。

关于rxjs - 为什么 withLatestFrom RxJS 方法不是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444630/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com