Я пытался изменить несколько образцов реактора от here, и я немного смущен поведением, которое я получаю.Использование реакторов doOnNext несколько раз
Так первый код, который я так:
EmitterProcessor<String> stream = EmitterProcessor.<String>create().connect();
Flux<String> flux = stream
.doOnNext(s -> System.out.println("1 " + s))
.doOnNext(s -> System.out.println("2 " + s));
flux.subscribe();
stream.onNext("Hello");
Этого код печатает две строки, как и ожидались:
1 Hello
2 Hello
Но если добавить промежуточное Название переменного делая вид, получить его от каких-то метод или для удобства чтения код начинает вести себя по-разному.
EmitterProcessor<String> stream = EmitterProcessor.<String>create().connect();
Flux<String> flux = stream
.doOnNext(s -> System.out.println("1 " + s));
flux .doOnNext(s -> System.out.println("2 " + s));
flux.subscribe();
stream.onNext("Hello");
Так что для кода выше, я получаю только одну строку, то есть:
1 Hello
Кто-нибудь может объяснить такое поведение?