本文整理了Java中reactor.core.publisher.Flux.defaultIfEmpty()
方法的一些代码示例,展示了Flux.defaultIfEmpty()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Flux.defaultIfEmpty()
方法的具体详情如下:
包路径:reactor.core.publisher.Flux
类名称:Flux
方法名:defaultIfEmpty
[英]Provide a default unique value if this sequence is completed without any data
[中]如果此序列在没有任何数据的情况下完成,请提供默认的唯一值
代码示例来源:origin: reactor/reactor-core
@Test(expected = NullPointerException.class)
public void valueNull() {
Flux.never().defaultIfEmpty(null);
}
代码示例来源:origin: reactor/reactor-core
@Test
public void streamCanEmitDefaultValueIfEmpty() {
// "Stream can emit a default value if empty"
// given: "a composable that only completes"
Flux<String> stream = Flux.empty();
List<String> values = new ArrayList<>();
// when: "a Subscribe Consumer is registered"
stream = stream.defaultIfEmpty("test")
.doOnComplete(() -> values.add("complete"));
// and: "the flux is consumed"
stream.subscribe(values::add);
// then: "the initial values are passed"
assertThat(values).containsExactly("test", "complete");
}
代码示例来源:origin: reactor/reactor-core
@Test
public void nonEmpty() {
AssertSubscriber<Integer> ts = AssertSubscriber.create();
Flux.range(1, 5).defaultIfEmpty(10).subscribe(ts);
ts.assertValues(1, 2, 3, 4, 5)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void empty() {
AssertSubscriber<Integer> ts = AssertSubscriber.create();
Flux.<Integer>empty().defaultIfEmpty(10).subscribe(ts);
ts.assertValues(10)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void nonEmptyHide() {
AssertSubscriber<Integer> ts = AssertSubscriber.create();
Flux.range(1, 5).hide().defaultIfEmpty(10).subscribe(ts);
ts.assertValues(1, 2, 3, 4, 5)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void emptyHide() {
AssertSubscriber<Integer> ts = AssertSubscriber.create();
Flux.<Integer>empty().hide().defaultIfEmpty(10).subscribe(ts);
ts.assertValues(10)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void advancedBatchingWindowing() {
StepVerifier.create(
Flux.just(1, 3, 5, 2, 4, 6, 11, 12, 13)
.windowWhile(i -> i % 2 == 0)
.concatMap(g -> g.defaultIfEmpty(-1))
)
.expectNext(-1, -1, -1) //respectively triggered by odd 1 3 5
.expectNext(2, 4, 6) // triggered by 11
.expectNext(12) // triggered by 13
// however, no empty completion window is emitted (would contain extra matching elements)
.verifyComplete();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void advancedBatchingWindowingSizeOverlap() {
StepVerifier.create(
Flux.range(1, 10)
.window(5, 3) //overlapping windows
.concatMap(g -> g.defaultIfEmpty(-1)) //show empty windows as -1
)
.expectNext(1, 2, 3, 4, 5)
.expectNext(4, 5, 6, 7, 8)
.expectNext(7, 8, 9, 10)
.expectNext(10)
.verifyComplete();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void emptyBackpressured() {
AssertSubscriber<Integer> ts = AssertSubscriber.create(0);
Flux.<Integer>empty().defaultIfEmpty(10).subscribe(ts);
ts.assertNoValues()
.assertNoError()
.assertNotComplete();
ts.request(2);
ts.assertValues(10)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void emptyBackpressuredHide() {
AssertSubscriber<Integer> ts = AssertSubscriber.create(0);
Flux.<Integer>empty().hide().defaultIfEmpty(10).subscribe(ts);
ts.assertNoValues()
.assertNoError()
.assertNotComplete();
ts.request(2);
ts.assertValues(10)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void nonEmptyBackpressured() {
AssertSubscriber<Integer> ts = AssertSubscriber.create(0);
Flux.range(1, 5).defaultIfEmpty(10).subscribe(ts);
ts.assertNoValues()
.assertNoError()
.assertNotComplete();
ts.request(2);
ts.assertValues(1, 2)
.assertNoError()
.assertNotComplete();
ts.request(10);
ts.assertValues(1, 2, 3, 4, 5)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: reactor/reactor-core
@Test
public void nonEmptyBackpressuredHide() {
AssertSubscriber<Integer> ts = AssertSubscriber.create(0);
Flux.range(1, 5).hide().defaultIfEmpty(10).subscribe(ts);
ts.assertNoValues()
.assertNoError()
.assertNotComplete();
ts.request(2);
ts.assertValues(1, 2)
.assertNoError()
.assertNotComplete();
ts.request(10);
ts.assertValues(1, 2, 3, 4, 5)
.assertComplete()
.assertNoError();
}
代码示例来源:origin: com.aol.cyclops/cyclops-reactor
/**
* @param defaultV
* @return
* @see reactor.core.publisher.Flux#defaultIfEmpty(java.lang.Object)
*/
public final Flux<T> defaultIfEmpty(T defaultV) {
return boxed.defaultIfEmpty(defaultV);
}
/**
代码示例来源:origin: org.mule.runtime/mule-core
@Override
public Publisher<CoreEvent> apply(Publisher<CoreEvent> publisher) {
if (responseProcessor == null) {
return publisher;
} else {
return from(publisher)
.transform(applyNext())
// Use flatMap and child context in order to handle null response and continue with current event
.flatMap(event -> from(processWithChildContext(event, responseProcessor, ofNullable(getLocation())))
.defaultIfEmpty(event));
}
}
代码示例来源:origin: org.mule.runtime/mule-core
@Override
public Publisher<CoreEvent> apply(Publisher<CoreEvent> publisher) {
return from(publisher)
.cast(PrivilegedEvent.class)
// Use flatMap and child context in order to handle null response and do nothing rather than complete response as empty
// if enrichment processor drops event due to a filter for example.
.flatMap(event -> from(processWithChildContext(PrivilegedEvent.builder(event)
.session(new DefaultMuleSession(event.getSession()))
.build(), enrichmentProcessor, ofNullable(getLocation())))
.cast(PrivilegedEvent.class)
.map(checkedFunction(response -> enrich(response, event)))
.defaultIfEmpty(event));
}
内容来源于网络,如有侵权,请联系作者删除!