rxjava可观察的成分

时间:2015-07-19 21:49:31

标签: rx-java

我创建了一个实体,它在循环中有方法isCorrect: Observable<Booledn>。我需要每个正确的最后一个布尔值的交集。我通过创建Observable数组来创建它,有更干净的方法吗?

API.getData().
.doOnNext(data -> 
 {
  List<Observable<Boolean>> correctAll = new ArrayList<>();
  Observable.from(data).forEach(r -> {
  Entity entity = new Entity();
  entity.set(r);
  correctAll.add(entity.correct());
  });
  Observable.combineLatest(correctAll, args -> {
    for (Boolean o : (Boolean[]) args)
         if (!o) return false;
                       return true;
    })
.subscribe(button::setEnabled);
 }

1 个答案:

答案 0 :(得分:0)

这个怎么样:

API.getData()
   .flatMap(
        data-> Observable.from(data)
               .flatMap(d -> { Entity entity = new Entity();
                               entity.set(r);
                               return entity.correct().last();}))
   .all(b -> b)
   .subscribe(button::setEnabled);