Hooks 是一个工具类,它提供了一些方法,用来在 Reactor 的各个阶段添加回调函数,进行全局性的操作。总体来说分为三类:
本部分算是reactor中比较高级的部分,建议在开始上手用reactor做项目前,大概知道有这么一个概念即可。
做了一两个项目以后,再回头来看看hooks是做什么的即可
当事件被丢弃时,会调用相应的回调函数。主要包括两个方法:
Hooks.onNextDropped(System.out::println);
Flux.just(1, 2, 3)
.map(i -> i * 2)
.subscribe();
当出现错误时,会调用相应的回调函数。主要包括两个方法:
Hooks.onOperatorError((t, context) -> {
System.out.println("onOperatorError: " + t.getMessage());
return t;
});
Flux.just(1, 2, 3)
.map(i -> i * 2)
.map(i -> 10 / (i - 4))
.subscribe();
当组装操作符时,会调用相应的回调函数。主要包括两个方法:
Hooks.onEachOperator(p -> {
System.out.println("onEachOperator: " + p);
return p;
});
Flux.just(1, 2, 3)
.map(i -> i * 2)
.subscribe();