reactor之hooks

Hooks 是一个工具类,它提供了一些方法,用来在 Reactor 的各个阶段添加回调函数,进行全局性的操作。总体来说分为三类:

本部分算是reactor中比较高级的部分,建议在开始上手用reactor做项目前,大概知道有这么一个概念即可。
做了一两个项目以后,再回头来看看hooks是做什么的即可

常用的Hooks类型

  • 丢弃事件的Hooks
  • 错误处理Hooks
  • 组装Hooks

丢弃事件的Hooks

当事件被丢弃时,会调用相应的回调函数。主要包括两个方法:

  • onNextDropped
  • onErrorDropped

demo

Hooks.onNextDropped(System.out::println);
Flux.just(1, 2, 3)
        .map(i -> i * 2)
        .subscribe();

错误处理Hooks

当出现错误时,会调用相应的回调函数。主要包括两个方法:

  • onOperatorError
  • onOperatorDebug

demo

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
  • onLastOperator

demo

Hooks.onEachOperator(p -> {
    
    
    System.out.println("onEachOperator: " + p);
    return p;
});
Flux.just(1, 2, 3)
        .map(i -> i * 2)
        .subscribe();

猜你喜欢

转载自blog.csdn.net/aofengdaxia/article/details/128975082