以下代码有效:
// 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流我明白之间的差map和flatMap(对于接收到的每个项目,map发出1,flatMap发射N)
但是在 Reactor 中我有点困惑。我认为,两者map和flatMapEMIT 1项为接收到的每个元件,所不同的是,所述map发射它作为一个Mono而 …
在以下两个示例中,第一个(带有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)