是否可以使用 RxJava 实现类似下一个链接的东西:
loginObservable()
.then( (someData) -> {
// returns another Observable<T> with some long operation
return fetchUserDataObservable(someData);
}).then( (userData) -> {
// it should be called when fetching user data completed (with userData of type T)
cacheUserData(userData);
}).then( (userData) -> {
// it should be called after all previous operations completed
displayUserData()
}).doOnError( (error) -> {
//do something
})
我发现这个库非常有趣,但不知道我们如何在彼此依赖的地方链接请求。
最佳答案
当然,RxJava 支持执行此操作的 .map
。来自 RxJava Wiki:
基本上是这样的:
loginObservable()
.switchMap( someData -> fetchUserDataObservable(someData) )
.map( userData -> cacheUserData(userData) )
.subscribe(new Subscriber<YourResult>() {
@Override
public void onCompleted() {
// observable stream has ended - no more logins possible
}
@Override
public void onError(Throwable e) {
// do something
}
@Override
public void onNext(YourType yourType) {
displayUserData();
}
});
关于java - RxJava : chaining observables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26935821/