我有这个简单的用例,我似乎无法弄明白。
给出2个可观测量,A和B
A在B发出第一个项目后开始发出项目,B可以继续发出不再影响A的项目。
我需要这个,因为A需要B发出的第一个值来开始发射。
我已经尝试过skipUntil和startWith都无济于事。
答案 0 :(得分:3)
我认为flatMap可以帮助您做您想做的事情:
Observable<Integer> createA(Observable<Integer> B) {
return B.take(1).flatMap(b -> {
/* replace with your Observable A implementation here */
BehaviorSubject<Integer> subjectA = BehaviorSubject.create();
return subjectA;
});
}
此方法返回一个Observable A
,它仅在使用Observable B
发出的第一个值初始化后开始发射。