Reactivestreams 订阅者不适用于 Spring Reactor Mono。为什么?
Reactivestreams Subscriber not works with Spring Reactor Mono. Why?
我有一个 reactor.core.publisher.Mono 变量并想订阅 org.reactivestreams.Subscriber,虽然它似乎不起作用。 我无法理解为什么从未调用 onNext 方法? 我看到 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!
在这里期待见到你好!短语也是。
https://www.reactive-streams.org/reactive-streams-1.0.0-javadoc/org/reactivestreams/Subscriber.html#onSubscribe-org.reactivestreams.Subscription-这里说的是No data will start flowing until Subscription.request(long) is invoked.
我有一个 reactor.core.publisher.Mono 变量并想订阅 org.reactivestreams.Subscriber,虽然它似乎不起作用。 我无法理解为什么从未调用 onNext 方法? 我看到 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!
在这里期待见到你好!短语也是。
https://www.reactive-streams.org/reactive-streams-1.0.0-javadoc/org/reactivestreams/Subscriber.html#onSubscribe-org.reactivestreams.Subscription-这里说的是No data will start flowing until Subscription.request(long) is invoked.