代码之家  ›  专栏  ›  技术社区  ›  P_M

Reactivestreams订阅者不能使用Spring Reactor Mono。为什么?

  •  1
  • P_M  · 技术社区  · 6 年前

    我有一个reactor.core.publisher.Mono变量,想要订阅org.reactivestreams.Subscriber,尽管它看起来不起作用。 我不明白为什么onNext方法从未调用? 我看到了名为fine的onSubscribe方法。我可能弄错了,但是作为Mono实现Publisher的工具,订户应该可以工作。对吗?

    @Test
        public void subscriberTest() {
            Mono<String> m = Mono.just("Hello!");
            Subscriber<String> s = new Subscriber<String>() {
                @Override
                public void onSubscribe(Subscription s) {
                    System.out.println("Subscription "+s);
                }
                @Override
                public void onNext(String t) {
                    System.out.println("onNext "+t);
                }
                @Override
                public void onError(Throwable t) {
                    System.out.println("Throwable "+t);
                }
                @Override
                public void onComplete() {
                    System.out.println("onComplete");
                }
            };
            m.subscribe(s);
    
            Mono<String> m1 = Mono.just("Bye!");
            m1.subscribe(System.out::println);
        }
    

    尽管带有方法引用的变量m1订阅工作正常。这里控制台输出:

    Subscription reactor.core.publisher.StrictSubscriber@4b168fa9
    Bye!
    

    在这里我期待着看到你好!短语也是。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Marcin Bukowiecki    6 年前