Как конвертировать моно другому моно ? - PullRequest
0 голосов
/ 26 марта 2020

Я пишу неблокирующую программу и знаю, что не должен использовать block(). В следующем коде я хочу решить без использования block().

У меня есть два репозитория.

Mono<Version> version = versionRepository.getVersion();
Mono<List<StandardField>> fieldList = fieldRepository.getFields(version.block().getVersionId());

и метод конвертирования ..

private Mono<List<ConvertField>> getConvertFields() {
    return versionRepository.getVersion().map(version -> {
               return fieldRepository.getFields(version.getVersion()).map(fields -> {
                   return fields.stream()
                           .map(field -> ConvertField.builder()
                                   .field(field.getField())
                                   .dataType(field.getDataType())
                                   .name(field.getName())
                                   .build()).collect(Collectors.toList());
               });
            });
    }

Однако это явление имеет место.

Обязательный тип: Mono<List<StandardField>> При условии: Mono<Object> Не существует экземпляра (ов) переменной (ей) типа R, так что Mono соответствует List<StandardField> Переменная вывода R имеет несовместимые границы. : ограничения равенства: List<StandardField> нижние границы: Mono<R528674>

Я хочу вернуть Mono<List<ConvertField>> путем объединения Mono<Version> и Mono<List<StandardField>>. Вы можете мне помочь?

...