小编lge*_*ean的帖子

在 Reactor 中的 .map() 与 .flatMap() 中返回 null

以下代码有效:

// emitting employees...
.flatMap(employee -> {

    boolean isAlive = employee.isAlive();

    return Mono.just(isAlive)

            .flatMap(myBoolean -> {
                if (myBoolean) {
                    return Mono.empty();
                } 
                else {
                    return Mono.just(employee);
                }
            });

})
Run Code Online (Sandbox Code Playgroud)

但我想知道为什么我不能.map在处理myBoolean时使用 a (NullPointerException 当它返回 null 时)

            .map(myBoolean -> {
                if (myBoolean) {
                    return null;
                } 
                else {
                    return employee;
                }
            });
Run Code Online (Sandbox Code Playgroud)

我相信我对mapVS缺乏一些了解flatMap

在Java 8流我明白之间的差mapflatMap(对于接收到的每个项目,map发出1,flatMap发射N)

但是在 Reactor 中我有点困惑。我认为,两者mapflatMapEMIT 1项为接收到的每个元件,所不同的是,所述map发射它作为一个Mono而 …

java reactor

3
推荐指数
2
解决办法
8250
查看次数

Java Reactor:来自 map() 的未处理异常,但由 fromCallable() 处理

在以下两个示例中,第一个(带有map())告诉我存在来自 的未处理异常readTree(),但在第二个示例中没有。为什么这样 ?谢谢!

Mono.just(jsonString)
.map(jsonString1 -> {
    return new ObjectMapper().readTree(jsonString1);
})
.onErrorResume(IOException.class, error -> {
    return Mono.error(new InvalidContentException("error with the JSON. " + error));
})
Run Code Online (Sandbox Code Playgroud)
Mono.fromCallable(() -> {
    return new ObjectMapper().readTree(jsonString);
})
.onErrorResume(IOException.class, error -> {
    return Mono.error(new InvalidContentException("error with the JSON. " + error));
})
Run Code Online (Sandbox Code Playgroud)

java reactor

1
推荐指数
1
解决办法
701
查看次数

标签 统计

java ×2

reactor ×2