Как решить, вызывая Mono <Token>, тогда результат будет использован для другого Mono <Collection>, который потом вернет Mono <collection>? - PullRequest
0 голосов
/ 25 апреля 2020

Привет, я только начал изучать реактивное программирование.

У меня есть этот кусок кода, и мой процесс здесь должен быть, я вызову 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 Ответ

1 голос
/ 25 апреля 2020

Я нашел ответ, хотя я не совсем уверен, что это правильный путь.

Как передать данные по реактивной цепочке

Вот что Я сделал с моим кодом.

public Mono<CardCollection> findAllCards(MultiValueMap<String, String> queryParams) {
  return tokenRepository.requestToken().flatMap(token -> {
      return cardRepository.findAllCards(token.getAccessToken(), queryParams);
  });
}
...