плоская карта после асинхронного метода? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть требование вызвать метод xxx асинхронно и немедленно вернуть успешный ответ.Тем не менее, мой метод xxx () ничего не выполняет после flatMap ().

public Observable<ReturnDataType> performOperations(List PhoneList){
  xxx(PhoneList);
  return Observable.just(return successObservable);
}

private void xxx(List PhoneList){
Observable.from(phoneList).flatMap(phone -> {
 doSomeOperations
}).toList();
}

Вопрос: Если какой-либо метод вызывается асинхронно, то ведет ли он себя так?Я что-то упустил?

Спасибо.

1 Ответ

0 голосов
/ 25 октября 2018

Код должен быть изменен следующим образом:

    Observable.from(phoneList)
            .flatMap(phone -> {
                doSomeOperations;
            })
            .toList()
            .toBlocking()
            .first();

Еще одна вещь, код кажется более подходящим для использования Completable, чем Observable.

    Observable.from(phoneList)
            .flatMap(phone -> {
                doSomeOperations;
            })
            .toCompletable()
            .await();
...