У меня есть метод, который возвращает Single<List<Item>>
, и я хотел бы взять каждый элемент в этом списке и передать его нижестоящему методу, который возвращает Completable
. Я хочу дождаться успешного завершения каждого элемента и вернуть результат Completable
. Мой первоначальный подход состоял в том, чтобы обрабатывать каждый элемент отдельно, используя flatMapIterable
, и объединять результаты, используя toList
, но я не могу вызывать toList
для объекта Completable
. Есть ли какой-либо другой способ таким образом «объединить» множество Completable
задач в одну Completable
? Вот что у меня есть до сих пор:
public Single<List<Item>> getListOfItems() {
...
}
public Completable doSomething(Item item) {
...
}
public Completable processItems() {
return getListOfItems()
.toObservable()
.flatMapIterable(items -> items)
.flatMapCompletable(item -> doSomething(item))
.toList() // ERROR: No method .toList() for Completable
.ignoreElements();
}