简单来说,如何在另一个订阅者的 onNext() 方法中订阅一个 observable,这样我们只能在当前 observable 完成执行时进行嵌套订阅。两个订阅都将在单独的线程上进行,并且要求第一个线程必须在第二个线程启动之前完成其执行。
makeObservable()
.subscribeOn(Schedulers.newThread())
.subscribe(new Subscriber<User> {
@override
void onNext(User user){
//do something
//make another subscription here
});
最佳答案
不要进行新的订阅,返回另一个 Observable
并订阅它。
apiCall()
.subscribeOn(<scheduler>)
.observeOn(<scheduler>)
.flatMap(new Func1<User, Observable<Something>() {
@Override
public Observable<Something> call(User user) {
return Observable.just(<example>);
}
});
编辑:当 api 调用返回时,flatMap
将拦截流,并从那里返回 Observable
或调用返回 Observable 的函数
(即另一个 API 调用)。
关于android - 当另一个可观察量完成时订阅另一个可观察量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39251355/