2016-11-11 42 views
1

我的步骤是:rxJava:作曲与单和completable返回单

  1. 创建一个单一值x - 可能是有点CPU密集型
  2. 使用值x进行IO操作。这已经返回Completable
  3. 返回X

,所以我想做某事像这样:

Single<Integer> result = 
      Single.fromCallable(() -> generate_x) 
       .COMPOSE_WITH_COMPLETABLE(x -> method_that_returns_completable(x)) 
       .map(x -> x + 1) // i still need x here 

如何实现的呢?

回答

3
single.flatMap(new Func1<Integer, Single<? extends Integer>>() { 
     @Override 
     public Single<? extends Integer> call(final Integer integer) { 
      return completable.toSingle(new Func0<Integer>() { 
       @Override 
       public Integer call() { 
        return integer; 
       } 
      }); 
     } 
    })