Я пишу неблокирующую программу и знаю, что не должен использовать 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>>
. Вы можете мне помочь?