Observable onNext () не вызывается для Observable.zip () - PullRequest
0 голосов
/ 03 июля 2018

У меня есть несколько запросов (загрузить файлы) в Observable, и я хочу выполнить их параллельно. Код:

    private void myMethod(List<String> filePathsList) {
    List<Observable<String>> observables = new ArrayList<>();

        for (String filePath : filePathsList) {
        MultipartBody.Part multipartFile = getMultipartFile("some_file_name", filePath);
           //here I'm just creating request from Retrofit restclient - the problem can't be here ;)
        Observable<String> fileUploadObservable = UploadsRestClient.get().sendFile(multipartFile, "another_post_param");
        observables.add(fileUploadObservable);
    }

    Observable<String> combinedObservable = Observable.zip(observables, new FuncN<String>() {
        @Override
        public String call(Object... args) {
            return null;
        }
    });

    combinedObservable.observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe(new Subscriber<String>() {
                @Override
                public void onCompleted() {
                    //called at the end                      
                }

                @Override
                public void onError(Throwable throwable) {
                    //called if error occurs              
                }

                @Override
                public void onNext(String string) {
                    //should be called foreach request, but it's called only after the last one   
                }
            });
}

Проблема в том, что onNext() вызывается только после того, как сделан последний вызов, до onCompleted(), как я могу быть вызван после каждого запроса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...