gpt4 book ai didi

stream - RxJS 可以以基于拉动的方式使用吗?

转载 作者:行者123 更新时间:2023-12-02 09:55:58 27 4
gpt4 key购买 nike

examples in the RxJS README似乎建议我们必须订阅来源。换句话说:我们等待源发送事件。从这个意义上说,源似乎是基于推送:源决定何时创建新项目。

然而,这与迭代器形成鲜明对比,严格来说,迭代器仅在请求时才需要创建新项,即在调用 next() 时。这是基于拉动的行为,也称为惰性生成

例如,流可以返回素数的所有维基百科页面。这些项目仅在您请求时才会生成,因为预先生成所有项目是一项相当大的投资,而且也许无论如何都只能读取其中的 2 或 3 个。

RxJS 是否也可以具有这种基于拉动的行为,以便仅在您请求时才生成新项目?

page on backpressure似乎表明这还不可能。

最佳答案

简短的回答是否定的。

RxJS 是为响应式(Reactive)应用程序设计的,因此正如您已经提到的,如果您需要基于拉的语义,您应该使用 Iterator而不是ObservableObservables 被设计为迭代器的基于推送的对应物,因此从算法上来说,它们确实占据了不同的空间。

显然,我不能说这永远不会发生,因为这是社区将决定的事情。但据我所知,1)这种情况的语义不太好,2)这与对数据使用react的想法背道而驰。

可以找到一个非常好的概要here 。它适用于 Rx.Net,但概念同样适用于 RxJS。

关于stream - RxJS 可以以基于拉动的方式使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33661314/

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