gpt4 book ai didi

java - 如何在不嵌套调用的情况下串行链接执行两个独立的 Observables?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:43:45 26 4
gpt4 key购买 nike

使用 RxJava 我有一个 Observable<A>和一个 Observable<B> .我想在 B 上开始订阅A 的第一个(也是唯一一个)元素被发射。我知道我可以像这样链接它:

final Observable<A> obsOfA;
final Observable<B> obsOfB;
obsOfA.subscribe(new Action1<A>() {
@Override
public void call(A a) {
obsOfB.subscribe(...)
}
});

..但这会导致嵌套语法,一旦我们引入 Observable<C> 就会变得很难看。 .我怎样才能将语法“展开”为更流畅的语法 - 获得更像 javascript Promise.then() 的语法-流?

最佳答案

你应该使用flatMap:

obsOfA.flatMap(new Func1<A, Observable<B>>() {
@Override
public Observable<B> call(A a) {
return obsOfB;
}
})
.subscribe(/* obsOfB has completed */);

每次 obsOfA 调用 onNext(a) 时,call 都会用这个值 a 执行。

关于java - 如何在不嵌套调用的情况下串行链接执行两个独立的 Observables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30214396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com