Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应该<;T>;。实现回报流量<;信号<;T>>;?_Java_Project Reactor - Fatal编程技术网

Java 应该<;T>;。实现回报流量<;信号<;T>>;?

Java 应该<;T>;。实现回报流量<;信号<;T>>;?,java,project-reactor,Java,Project Reactor,根据其在Mono.materialize()上的Javadoc: 将输入的onNext、onError和onComplete信号转换为信号。由于错误被具体化为一个信号,传播将停止并发出onComplete。Complete signal将首先发出一个信号。Complete(),然后有效地完成通量 这意味着当没有发生错误时,物化返回的发布者应至少发出2个信号: 信号。下一步 信号。完成 但是,此方法的返回类型是Mono,它只允许发出单个事件。所以我很困惑。代码应该是 Flux<Signa

根据其在
Mono.materialize()上的Javadoc:

将输入的onNext、onError和onComplete信号转换为信号。由于错误被具体化为一个信号,传播将停止并发出onComplete。Complete signal将首先发出一个信号。Complete(),然后有效地完成通量

这意味着当没有发生错误时,
物化
返回的
发布者
应至少发出2个信号:

  • 信号。下一步
  • 信号。完成
但是,此方法的返回类型是
Mono
,它只允许发出单个事件。所以我很困惑。代码应该是

Flux<Signal<Integer>> mono = Mono.just(1).materialize();
StepVerifier.create(mono)
    .expectNext(Signal.next(1))
    .expectNext(Signal.complete())
    .verifyComplete();
Flux mono=mono.just(1).materialize();
步骤验证程序。创建(单声道)
.expectNext(信号.next(1))
.expectNext(Signal.complete())
.verifyComplete();

单声道
中,
物化
只发出一个
信号
。单声道上只能出现3种情况:

  • 单声道成功且赋值
    信号。发出下一个(值)
  • 单声道成功,但发出空的
    信号。complete()
  • 单声道错误
    信号。错误(可丢弃)
    发出

  • 我猜有一个
    在第一行缺失,以及在下面的内容上做了太多的编辑,对吗?谢谢,我补充了这一点。如果是这样的话,Javadoc应该得到改进,因为它误导了我,让我认为返回应该是一个
    Flux