为什么我可以用Mono.fromCalleable放置可空值

时间:2019-01-06 02:35:37

标签: java kotlin null reactive reactor

我想知道为什么我可以做类似的事情:

data-city

成功。我知道在反应式编程中,我们不应在通道中处理空值

1 个答案:

答案 0 :(得分:0)

因为可以用Mono完成null。在这种情况下,它将直接移动到具有空(空)内容的完整状态:

        T t = callable.call();
        if (t == null) {
            sds.onComplete();
        }
        else {
            sds.complete(t);
        }

位置:

@Override
public final void onComplete() {
    countDown();
}

当您致电block()时,您只是从null获得value Mono

要点是,由于状态已经为complete,因此通道中将无任何处理。因此,我们立即转到返回值null