在新版本中,reactiveX引入了Single,作为Observable的变体 http://reactivex.io/documentation/single.html
在我目前的用例中,我有很多好处,我有多次执行,每次都只返回一个结果。因此,如果我从使用Observable变为Single,那将是有意义的。
但是作为我的用例的一部分,对于上面的多次执行,我需要稍后将它们连接到一个Observable流中(以获得上述所有执行的结果)。
所以现在我的问题是,在性能方面哪些更有益?
或
谢谢。
答案 0 :(得分:5)
单个意味着在您期望单个值响应时使用 另一方面,可观察的是用于流或矢量值 因此,就反应模式而言,只要你期望只有1个结果并且不想操纵数据就足够使用Single
答案 1 :(得分:2)
据我所知,如果我完全了解你的情况,让Singles处理前面提到的多执行语句并将所述Singles与一个Observerable结合起来是有意义的。
出于性能原因,我无法找到很好的文档,但是我可以逻辑地解释为什么在可能的情况下使用Single是更好的做法(尽管当涉及到主要时你会遇到杂草重构)。
答案: 考虑一种我们使用类似于你的情况的Observable的情况(我们知道它只会返回一个值)。使用Single,我们有逻辑在发出值后立即转向OnSuccess方法,而在Observables中我们需要验证它是最后一个然后调用OnComplete。
也许另一个开发者可以权衡,但它背后的逻辑似乎是有道理的。
答案 2 :(得分:1)
在某些情况下,使Observable返回单个值(或错误)然后结束。这里有一个很好的解释:http://angusmorton.com/rx-single/