Как решить проблему, вызывая Mono <Token>, тогда результат будет использован для другого Mono <Collection>, который затем вернет Mono <collection>?
Привет, я только начал изучать реактивное программирование
У меня есть этот фрагмент кода, и мой процесс здесь должен заключаться в том, что я вызову tokenRepository, чтобы получить токен, а затем использую token.getAccessToken(), который будет использоваться в качестве параметра в cardRepository.findAllCards()
public class CardService {
private final CardRepository cardRepository;
private final TokenRepository tokenRepository;
public CardService(CardRepositorycardRepository,
TokenRepository tokenRepository) {
this.cardRepository = cardRepository;
this.tokenRepository = tokenRepository;
}
public Mono<CardCollection> findAllCards(MultiValueMap<String, String> queryParams) {
Mono<Token> token =tokenRepository.requestToken();
// then I would like to use the token.getAccessToken
return cardRepository.findAllCards(token.getAccessToken, queryParams); // Then this should return Mono<CardCollection>
}
}
Хотите знать, возможно ли это?
1 ответ
Решение
Я нашел ответ, хотя не совсем уверен, правильный ли это путь.
Как передавать данные по реактивной цепочке
Вот что я сделал со своим кодом.
public Mono<CardCollection> findAllCards(MultiValueMap<String, String> queryParams) {
return tokenRepository.requestToken().flatMap(token -> {
return cardRepository.findAllCards(token.getAccessToken(), queryParams);
});
}