在RxJava中,是否存在适用于Subject
的{{1}}类的任何内容?据推测,我会调用其Single
或onSuccess( item )
方法,输出将转发到onError( Throwable )
。
我想我可以使用SingleSubscriber
Observable
并将其转换为Subject
,但这看起来有点笨重。
目前使用RxJava 1但对RxJava 2的情况也很感兴趣。
答案 0 :(得分:7)
在RxJava 2中,您可以使用SingleSubject
,如下所示:
SingleSubject<Integer> subject1 = SingleSubject.create();
TestObserver<Integer> to1 = subject1.test();
// SingleSubjects are empty by default
to1.assertEmpty();
subject1.onSuccess(1);
// onSuccess is a terminal event with SingleSubjects
// TestObserver converts onSuccess into onNext + onComplete
to1.assertResult(1);
TestObserver<Integer> to2 = subject1.test();
// late Observers receive the terminal signal (onSuccess) too
to2.assertResult(1);
不幸的是,RxJava 1中没有可用的等价物。但是,正如您所提到的,您可以通过调用subject.toSingle()
来获得所需的结果。