reactor.core.publisher.Flux.defaultIfEmpty()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(5.5k)|赞(0)|评价(0)|浏览(269)

本文整理了Java中reactor.core.publisher.Flux.defaultIfEmpty()方法的一些代码示例,展示了Flux.defaultIfEmpty()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Flux.defaultIfEmpty()方法的具体详情如下:
包路径:reactor.core.publisher.Flux
类名称:Flux
方法名:defaultIfEmpty

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));
}

相关文章

微信公众号

最新文章

更多

Flux类方法