嗨我刚开始学习反应式编程
我这里有这段代码,我的过程应该是我将调用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>
}
}
想知道这是否可行吗?
我找到了答案,尽管我不太确定这是否是正确的方法。
如何通过反应链传递数据
这就是我对代码所做的。
public Mono<CardCollection> findAllCards(MultiValueMap<String, String> queryParams) {
return tokenRepository.requestToken().flatMap(token -> {
return cardRepository.findAllCards(token.getAccessToken(), queryParams);
});
}
我面临的情况是,我必须使用2 Mono,其中第二个将依赖于第一个的Id字段,并在第一个Mono的主体中返回第二个的响应。 例如: 然后将结果返回为 我试过了 但像这样,我只能返回第二个单声道的响应。 通过尝试Map或Flatmap,它只在第二个单声道上起作用。 请提出建议。
我最近一直在学习使用Java中的reactor库和Spring框架进行反应式编程,并且在很大程度上我已经能够掌握它。然而,我发现自己有好几次遇到同样的情况,我想知道我哪里出了问题。 我正在努力解决的问题的要点是,我经常想用mono做一些事情,比如找到一些补充数据,然后将其添加回原始mono中。zip函数在我看来是一个理想的候选函数,但最终我订阅了两次原始mono,这不是我的意图。 这里有一个人为的
webflux包中发生了有趣的事情。然而,我在源头的旅程并没有解决以下问题。 假设我有以下单声道(或通量): 我在webfilter中使用类似的构造,用租户和用户数据丰富管道。然后在控制器中使用如下构造: hello mono的上下文填充在world mono中。我试图弄清楚这是如何做到的,也是为了单元测试的目的。 最后,这仍然是一个谜。我试图用单声道/通量对象上可用的常规方法来做到这一点,但是我
给定以下monos: 双: 和: 具有相同的输出: 和之间有什么区别,在这种情况下? 从https://projectreactor.io/docs/core/release/reference/index.html#which-operator: [如果你]有一个序列,但[你]对值不感兴趣,并且[你]想在最后切换到另一个单声道,[使用]。 [如果您]希望通过将发布者从1个Mono和任何源端协调到
我的代码如下。我需要从mongo db获得每次旅行的车费,然后将每次旅行的所有车费相加,得到总车费。我被一种我不知道如何阅读的单声道音乐所困扰。我试着把它转换成通量,但我得到了通量 "'
问题方法需要等待单声道操作结果,在通量操作中使用,并返回通量。 研究我希望流被Mongo反应驱动订阅并终止,所以我不订阅。如果我使用我有单声道 任务如何等待值,在通量操作中使用它并从中获取通量?