gpt4 book ai didi

javascript - 我什么时候应该使用 `publishReplay` 与 `shareReplay` ?

转载 作者:太空狗 更新时间:2023-10-29 16:51:32 24 4
gpt4 key购买 nike

我已经知道了

  • publish 共享一个订阅并返回一个 ConnectableObservable(因此我们必须 Connect())

  • Share()publish().refcount()

Replay 后缀非常明显,它返回最后一次发射。

让我们以具有当前和 future 订阅的 Angular HTTP 请求为例:

<p>{{ (person | async)?.id   }}</p> //present markup

<p *ngIf=”show”>{{ (person | async)?.userId }}</p> <!-- future markup -->

如果我不想要多个 http 请求,我可以使用:

publishReplay().Connect()

但我也可以使用:shareReplay(),但我确信这里有一个比另一个使用起来更正确。

问题:

什么时候应该使用 publishReplayshareReplay?就当前和 future 的 HTTP 请求而言,会有什么不同?

<子>注意为什么没有关于 shareReplay 的文档?

最佳答案

shareReplay() is basically publishReplay().refCount()

绝对不是。

shareReplaypublishReplay(+ 在其上调用 connect)都会使它后面的 observable 变热。

但是它们之间非常重要的区别是:

  • shareReplay:不会停止发送,直到它完成,无论是否不再有订阅。
  • publishReplay:如果与 refCount 一起使用,将在最后一个订阅者取消订阅后停止

恕我直言,这是一个重要信息。

关于javascript - 我什么时候应该使用 `publishReplay` 与 `shareReplay` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47926240/

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