为什么我不能在 Flux 启动后使用 concatWith
Why can't I use concatWith after Flux initiation
我是新手,正在学习 Spring Flux。我无法理解以下内容:此处正在打印西瓜:
Flux<String> fruitFlux = Flux.just("Apple", "Banana", "Orange").concatWith(Flux.just("Watermelon"));
fruitFlux.subscribe( System.out::println);
但是当使用下面的代码时,它没有被打印出来:
Flux<String> fruitFlux = Flux.just("Apple", "Banana", "Orange");
fruitFlux.concatWith(Flux.just("Watermelon"));
fruitFlux.subscribe( System.out::println);
这两个代码块不应该完全一样吗?
否 - Flux 是不可变的,concatWith
return 等运算符会相应修改 Flux 的新实例。他们不会改变原始发布者。
在你的第二个例子中,你忽略了那个新实例,所以它不会有任何效果。
如果您改为 fruitFlux = fruitFlux.concatWith(Flux.just("Watermelon"));
,那么您会看到预期的结果。
我是新手,正在学习 Spring Flux。我无法理解以下内容:此处正在打印西瓜:
Flux<String> fruitFlux = Flux.just("Apple", "Banana", "Orange").concatWith(Flux.just("Watermelon"));
fruitFlux.subscribe( System.out::println);
但是当使用下面的代码时,它没有被打印出来:
Flux<String> fruitFlux = Flux.just("Apple", "Banana", "Orange");
fruitFlux.concatWith(Flux.just("Watermelon"));
fruitFlux.subscribe( System.out::println);
这两个代码块不应该完全一样吗?
否 - Flux 是不可变的,concatWith
return 等运算符会相应修改 Flux 的新实例。他们不会改变原始发布者。
在你的第二个例子中,你忽略了那个新实例,所以它不会有任何效果。
如果您改为 fruitFlux = fruitFlux.concatWith(Flux.just("Watermelon"));
,那么您会看到预期的结果。