RxJava withLatestFrom 不工作
RxJava withLatestFrom not working
我希望在 运行 我的示例代码后得到如下结果。
测试
测试
ctest
但实际上什么都没发生
请让我知道我的代码有什么问题。
Subject<String, String> subject = PublishSubject.create();
subject.onNext("test");
Observable<String> observable = Observable.from(new String[] {"a", "b", "c"}).repeat(2);
observable.withLatestFrom(subject, (s1, s2) -> s1 + s2)
.subscribe(s -> System.out.println(s));
首先,withLatestFrom
删除值,直到另一个可观察对象产生第一个值。如果主源是同步的并且在另一个源发出之前冲过,这种情况经常发生。
其次,PublishSubject
向订阅者发送,但在您的示例中,在 subject.onNext()
行没有人观察该值,因此被删除。
您可以使用 BehaviorSubject
,它会记住最后一个值,withLatestFrom
也会立即看到它。
我希望在 运行 我的示例代码后得到如下结果。
测试
测试
ctest
但实际上什么都没发生
请让我知道我的代码有什么问题。
Subject<String, String> subject = PublishSubject.create();
subject.onNext("test");
Observable<String> observable = Observable.from(new String[] {"a", "b", "c"}).repeat(2);
observable.withLatestFrom(subject, (s1, s2) -> s1 + s2)
.subscribe(s -> System.out.println(s));
首先,withLatestFrom
删除值,直到另一个可观察对象产生第一个值。如果主源是同步的并且在另一个源发出之前冲过,这种情况经常发生。
其次,PublishSubject
向订阅者发送,但在您的示例中,在 subject.onNext()
行没有人观察该值,因此被删除。
您可以使用 BehaviorSubject
,它会记住最后一个值,withLatestFrom
也会立即看到它。