gpt4 book ai didi

rxjs - 为什么 Rx 中没有 endWith 运算符?

转载 作者:行者123 更新时间:2023-12-02 17:38:12 24 4
gpt4 key购买 nike

有了像 .startWith 这样方便的方法,使用相反的 .endWith 就有意义了,这使得可观察对象在完成时产生一个值。

我已经想出了这个解决方案,但是还有更好的吗?这东西的本质有点难以阅读。

source.concat(Rx.Observable.just(lastValue))

最佳答案

RxJS6 中有(说实话,不知道什么时候添加的)

文档:

https://rxjs-dev.firebaseapp.com/api/operators/endWith

来源: https://github.com/ReactiveX/rxjs/blob/df0ea7c78767c07a6ed839608af5a7bb4cefbde5/src/internal/operators/endWith.ts

此外,defaultIfEmpty() 仅在可观察对象关闭而不发出值的情况下发出值。这是一个微妙但又不那么微妙的区别。在有限的情况下,它可能与 endWith() 具有相同的效果。

endWith() 示例:

const source = of(1, 2, 3, 4, 5);
const example = source.pipe(
takeWhile(val => val != 4),
endWith(4));

发出:

[1, 2, 3, 4]

我还注意到 https://learnrxjs.io网站越来越过时,目前不显示此运算符。

为什么我需要它?

我一直在寻找一种能力,即在条件变为 true 之前发出 false,但永远不会返回 false。与去抖有点相似,但又不完全一样。

关于rxjs - 为什么 Rx 中没有 endWith 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42951041/

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