微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebFlux 意外行为

如何解决WebFlux 意外行为

我必须进行一些 API 调用,进行一些处理并合并结果。 这是示例代码

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

@RestController
@RequestMapping("/orders")
public class OrderController {
    @GetMapping("/{id}")
    private Mono<String> getordersById(@PathVariable String id) {
        Mono<String> order = Mono.just("Order 1");
        Flux<Integer> items = Flux.just(1,2,3,4);
        Mono<String> sum = items.reduce((accu,next) -> accu + next).map(s -> s.toString());
        Mono<String> fullOrder = order.zipwith(sum,(o,i) -> o + ",value: " + sum);
        return fullOrder;
    }
}

我认为对于这样的合并,好的工具是 zip 方法,但结果是: 顺序 1,值:MonoMapFuseable 这是为什么? 是否有另一种从其他 Monos 合并的返回 Mono 的正确方法? 项目由 Spring Initializr 生成,具有 Spring Reactive Web 依赖项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。