Zip-динамическое число наблюдаемых - PullRequest
0 голосов
/ 15 мая 2019

У меня есть список наблюдаемых. Размер этого динамичен. Каждая наблюдаемая представляет вызов API, сделанный с помощью Retrofit. Поэтому мне нужно сжать все эти вызовы, чтобы получить список ответов того же типа.

Вот посмотрите, что я пробовал:

//The method that perfoms the api call
private fun iterateObservable(params: AssignSeatStatusResponse): List<Observable<SeatSelectionResponse>> {
        val seatsMatrix = mutableListOf<Observable<SeatSelectionResponse>>()
        params.seatJourneys.forEach { seatJourneysItem ->
            seatJourneysItem.seatSegments.forEach { seatSegmentsItem ->
                seatsMatrix.add(
                    this.getSeatMapFromServiceUseCase.createObservable(buildSeatSelectionRequest(seatSegmentsItem))
                        .subscribeOn(Schedulers.newThread())
                )
            }
        }

        return seatsMatrix

//The method I need to return the list of observables
override fun createObservable(params: AssignSeatStatusResponse): Observable<List<SeatSelectionResponse>> {
        return Observable.zip(iterateObservable(params), FuncN {

        })
    }

Моя проблема заключается в том, что почтовый индекс отображает ошибку, говоря, что ни одна из следующих функций не может быть вызвана с предоставленными аргументами.

Что я делаю не так? Любая помощь будет оценена. Заранее спасибо.

1 Ответ

0 голосов
/ 15 мая 2019

Вы должны сделать что-то вроде этого:

Observable.zip(iterateObservable) { items ->
    // zip them in some way
}

items будет содержать выброс всех Observable с в iterableObservable

...