java - 由操作员检查通量流
问题描述
我尝试检查现有流,但到目前为止找不到特殊运算符。
Flux.just(1, 2, 3)
// just inspect every element
.map(e -> {
System.out.println(e);
return e;
})
.subscribe();
解决方案
正如您评论的那样,doOnNext(System.out::println)
只会打印每个元素,这对于简单的用例可能就足够了。(一般来说,doOnNext()
用于副作用,所以tap()
在这个意义上相当于。)
但是,如果调试是您的主要目的,您可能还想查看log()
,它会为您提供更多有用的信息(例如通知您订阅、请求等以及每个元素,以及它们如何联系在一起。 ) 例如:
Flux.just(1, 2, 3)
.log()
.subscribe();
印刷:
[ INFO] (main) | onSubscribe([Synchronous Fuseable] FluxArray.ArraySubscription)
[ INFO] (main) | request(unbounded)
[ INFO] (main) | onNext(1)
[ INFO] (main) | onNext(2)
[ INFO] (main) | onNext(3)
[ INFO] (main) | onComplete()
推荐阅读
- excel - 如何在没有 For VBA 编译器错误的情况下修复 Next?
- python - Python:二进制到 Base64
- java - 实现接口中所有方法的深度优先遍历算法
- ansible - 使用 Ansible 安装 Debian 软件包 (.deb) 时出现问题
- c# - Visual Studio Windows 窗体应用程序中出现未处理的异常。会是什么呢?
- mongodb - NestJs / Mongoose 在 Docker 撰写时无法建立 MongoDB 数据库连接
- vagrant - 我只能在运行`vagrant destroy`然后`vagrant up`时更新我的Vagrantfile
- python - 用Python获取连接接口的网络地址
- angular - ngx-mask - 简单的十进制掩码不起作用
- css - 如何更改应用程序中的Firefox图标(css)