RxJava Flowable<List<T>> 对每一项进行操作,然后对结果列表进行操作

RxJava Flowable<List<T>> do operation on each item and then do operation on resulted list

我有一个 Flowable<List<Item>> 我想要:

  1. 对每一项进行操作
  2. 之后,我想对整个结果列表进行操作。

这现在不起作用,因为它看起来像是进入了一个无限循环::

        return list.concatMap(list ->
                    Observable.fromIterable(list)
                            .map(item -> {
                                item.setValue(value);
                                return item;
                            }).toList().toFlowable()
                            .flatMap(updatedList -> mLocalDataSource.update(updatedList)))
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread());

我认为在 flatMap()/concatMap() 中完成这项工作没有任何优势。我只想说,如果 Item 是不可变的,它会更干净。

list.concatMap(items -> {
  for(Item item : items)
    item.setValue(value);
  return mLocalDataSource.update(items)
});