Run multiple API calls using Android Rx, then get response for each call

20 Views Asked by At

I need make multiple API call and then get result for each one: succeed or error. Trying to using flatMap, but can't get separate responce for each call, my queue stops right after the first error occurred (doOnError called just one time when I have 3 calls). Each API call run successfully, but I can't get response for each one. Any suggestions? Thanks.

    Flowable
        .range(0, list.size)
        .flatMap { i ->
            apiService
                .sendRequest(list[i].request, list[i].body)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .doOnComplete {
                    Timber.d("flatMap doOnComplete")
                }
                .doOnError {
                    Timber.d("flatMap doOnError")
                }

        }
        .onErrorResumeNext(Flowable.empty())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe({ response ->
            Timber.d("test sendData response succeed = ${Gson().toJson(response)}")
        }, { error ->
            Timber.e(error, "test sendData response error")
        })
0

There are 0 best solutions below