Java 可观测的#single()和可观测的#toSingle()之间的差异?
我偶然发现了这些方法,从我从文档中得到的信息来看,它们的作用几乎完全相同。从代码上看,它们显然做了不同的事情。From startJava 可观测的#single()和可观测的#toSingle()之间的差异?,java,rx-java,system.reactive,reactive,Java,Rx Java,System.reactive,Reactive,我偶然发现了这些方法,从我从文档中得到的信息来看,它们的作用几乎完全相同。从代码上看,它们显然做了不同的事情。From startsingle()返回一个可观察的值(为什么?),而toSingle()有效地返回一个值 我对反应世界的有限知识让我想知道,为什么这两种方法都存在?他们有什么不同?他们中的任何一个应该使用另一个吗 它们中的任何一个或两个是否立即将可观察的转换为单个,如果没有发出任何项目,则抛出错误?还是等待事件发出 另一件让我困惑的事情是,他们的大理石图是不同的 (和),但他们的文档所
single()
返回一个可观察的值(为什么?),而toSingle()有效地返回一个值
我对反应世界的有限知识让我想知道,为什么这两种方法都存在?他们有什么不同?他们中的任何一个应该使用另一个吗
它们中的任何一个或两个是否立即
将
可观察的转换为单个,如果没有发出任何项目,则抛出错误?还是等待事件发出
另一件让我困惑的事情是,他们的大理石图是不同的
(和),但他们的文档所说的,他们的行为应该完全相同,特别是他们的行为应该像single()
marble diagram
以下是文件:
我认为两者都是相同的,都会在上游完工时产生一个项目,如果提供了多个项目,都会产生错误(如文件所述),因此使用它们的安全方式是可观察的。take(1).toSingle()或确实可观察的。take(1).single()我认为两者都是相同的,两者都会在上游完工时产生1个项目,如果提供了多个项目(如文档所述),则两者都会产生错误,因此使用它们的安全方式是可观察的。take(1).toSingle()或确实可观察的。take(1).single() 为什么这两种方法都存在
single()
是原始ReactiveX操作符集的一部分<代码>toSingle()是后来在RxJava中引入Single
时添加的
他们有什么不同
它们返回一个不同的基类single()
保持可见
和toSingle()
转换为single
他们中的任何一个应该使用另一个吗
这取决于您想要使用什么类型,以及是否计划很快迁移到RxJava2.x。在RxJava2中,没有toSingle
,并且(大多数)操作符现在返回更合适的类型:single(T)
,singleOrError()
或singleElement()
他们的大理石图是不同的
toSingle
的大理石没有错误案例,并且Single
类型的时间图与Observable
相比,在表示随时间变化的事件方面有略微不同的约定
为什么这两种方法都存在
single()
是原始ReactiveX操作符集的一部分<代码>toSingle()是后来在RxJava中引入Single
时添加的
他们有什么不同
它们返回一个不同的基类single()
保持可见
和toSingle()
转换为single
他们中的任何一个应该使用另一个吗
这取决于您想要使用什么类型,以及是否计划很快迁移到RxJava2.x。在RxJava2中,没有toSingle
,并且(大多数)操作符现在返回更合适的类型:single(T)
,singleOrError()
或singleElement()
他们的大理石图是不同的
toSingle
的大理石没有错误案例,并且Single
类型的时间图与Observable
相比,在表示随时间变化的事件方面有略微不同的约定。您可以为每个操作员提供文档链接吗?您可以为每个操作员提供文档链接吗?