【发布时间】:2017-09-30 11:15:42
【问题描述】:
我一直在玩 Java Flow offer 运算符,但在阅读文档并进行测试后我不明白。
这是我的测试
@Test
public void offer() throws InterruptedException {
//Create Publisher for expected items Strings
SubmissionPublisher<String> publisher = new SubmissionPublisher<>();
//Register Subscriber
publisher.subscribe(new CustomSubscriber<>());
publisher.subscribe(new CustomSubscriber<>());
publisher.subscribe(new CustomSubscriber<>());
publisher.offer("item", (subscriber, value) -> false);
Thread.sleep(500);
}
offer 运算符接收要发出的项目和 BiPredicate 函数,据我了解阅读文档,只有在谓词函数为真的情况下才会发出项目。
bur通过测试后的结果是
Subscription done:
Subscription done:
Subscription done:
Got : item --> onNext() callback
Got : item --> onNext() callback
Got : item --> onNext() callback
如果我返回 true 而不是 false,则结果没有变化。
请谁能给我解释一下这个运算符。
【问题讨论】:
标签: java java-9 reactive-streams java-flow