RxJava:链接可观察量 [英] RxJava: chaining observables
本文介绍了RxJava:链接可观察量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以使用RxJava实现下一个链接:
Is it possible to implement something like next chaining using 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
})
我发现这个库非常有趣,但无法计算我们如何将请求链接到彼此依赖的先前。
I found this library very interesting, but can't figure our how to chain requests where each other depends on previous.
推荐答案
当然,RxJava支持 .map
这是做什么的。来自RxJava Wiki:
Sure, RxJava supports .map
which does this. From the 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();
}
});
这篇关于RxJava:链接可观察量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文