mono.switchIfEmpty
时间: 2024-04-27 10:17:56
浏览: 88
mono.switchIfEmpty是Reactor库中的一个操作符,用于在Mono流中,当源流为空时,切换到备用的Mono流。
当源流为空时,switchIfEmpty操作符会将控制权转移到备用的Mono流上,以便返回备用流中的元素。如果源流不为空,则不会进行切换,而是直接返回源流中的元素。
以下是switchIfEmpty操作符的使用示例:
```java
Mono<[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)> source = Mono.empty();
Mono<[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)> [backup](https://geek.csdn.net/educolumn/50785c2bfb078a437e2416e353a20ccb?spm=1055.2569.3001.10083) = Mono.just("[backup](https://geek.csdn.net/educolumn/50785c2bfb078a437e2416e353a20ccb?spm=1055.2569.3001.10083) value");
Mono<[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)> result = source.switchIfEmpty(backup);
result.subscribe(System.out::println); // 输出:Backup value
在上面的示例中,源流source是一个空的Mono流,备用流backup是一个包含了"Backup value"的Mono流。通过调用switchIfEmpty操作符,并传入备用流backup,最终输出的结果是"Backup value"。
相关问题
mono.defer
引用\[1\]: Mono.defer JDK注释 Create a Mono provider that will supply a target Mono to subscribe to for each Subscriber downstream. 翻译 。
引用\[2\]:本篇文章分享Mono.just与Mono.defer的区别并用代码进行了测试。 Mono.just J