在 webflux 序列中引发错误/断言?

Raise error / assert in webflux sequence?

假设我有以下 webflux 片段:

.map(str -> str.split(","))
.OnErrorResume(...)

我想确保拆分 returns 一个恰好 x 项的数组。不然我要进OnErrorResume了。有没有一种 webflux-y 方法可以做到这一点? filter 只会删除不良项目,但这不是我想要的。

我是否需要将 map 扩展为:

{
  String[] arr = str.split(",");
  if (arr.length != 3)
     return Mono.error();
  return arr;
}

或者是否有内置的东西?

你试过handle方法了吗?

.map(str -> str.split(","))
.<String[]>handle((arr, sink) -> {
    if (arr.length == x)
         sink.next(arr);
    else
         sink.error(new ArrayLengthException());
   })
.onErrorResume(err -> Mono.just(...));