java - RxJava : chaining observables

标签 java android scala promise rx-java

是否可以使用 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:

map

基本上是这样的:

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/

相关文章:

java - 将 .class 文件添加到 NetBeans 中的项目

android - 使用 Trigger.io 检测推送通知的到达

scala - 定义多个特征的最佳实践,这些特征将行为添加到实现特定特征的类中

scala - 表达式 _GEN_7 用作 FEMALE 但只能用作 MALE

java - 应用程序在蓝牙发现期间崩溃

java - 比较器java中计数器变量的奇怪输出

java : can not find out the problem with could not find or load main class

java - Activity 上的透明 DialogFragment

php - 我如何从 AsyncTask 返回一个数组列表?

scala - 是否可以像在 Haskell 中一样在 Scala 中实现翻转?