1 Mono 创建
Mono.just(1).mergeWith(Flux.just(1, 2, 3)).subscribe(System.out::print);
System.out.println();
Mono.fromSupplier(() -> "Hello").subscribe(System.out::println);
Mono.justOrEmpty(Optional.of("Hello")).subscribe(System.out::println);
Mono.create(sink -> sink.success("Hello")).subscribe(System.out::println);
2 Mono 操作符
Mono.zip(string -> string.length, Mono.just(1), Mono.just(2))
.subscribe(System.out::println);
System.out.println("---------- 分割线2 ----------");
Mono.zip(string -> string.length, Mono.just(1))
.map(getIntegerIntegerFunction())
.doOnSuccess(integer -> System.out.println("成功了"))
.doOnTerminate((a, e) -> System.out.println("结束了"))
.then(() -> Mono.just(888))
.subscribe(System.out::println);
System.out.println("---------- 分割线3 ----------");
Mono.defer(() -> Mono.just(feeService()))
.map(integer -> integer + 1)
.subscribe(System.out::println);
Mono.just(feeService())
.map(integer -> integer + 1)
.subscribe(System.out::println);
System.out.println("---------- 分割线4 ----------");
Mono.delay(Duration.ofMillis(3)).subscribe(System.out::println);
TimeUnit.SECONDS.sleep(1);
System.out.println("---------- 分割线5 ----------");
Mono.using(() -> 1,
integer -> Mono.just(2 + integer),
integerSource -> System.out.println("清理结果是:" + integerSource),
false)
.flatMap(integer -> Mono.just(integer + 3))
.subscribe(integer -> System.out.println("最终结果是:" + integer));
Mono.using(() -> 1,
integer -> Mono.just(2 + integer),
integerSource -> System.out.println("清理结果是:" + integerSource),
true)
.flatMap(integer -> Mono.just(integer + 3))
.subscribe(integer -> System.out.println("最终结果是:" + integer));
Mono<Void> when = Mono.when();
Mono.when(Mono.just(1), Mono.just(2), (m1, m2) -> m1 + m2).subscribe(System.out::println);
Mono.just(1).concatWith(Mono.just(2)).subscribe(System.out::println);
}
private static Integer feeService() {
return 1;
}
private static Function<Integer, Integer> getIntegerIntegerFunction() {
return integer -> {
integer = integer + 1;
System.out.println("----->" + integer);
return integer;
};
}