- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通常需要生成一个 Mono/Flux,其值将在订阅时生成/计算。为此, fromCallable 和 defer 运算符似乎都很好。
我无法在 javadoc 中清楚地看到差异:
FromCallable:
public static Mono fromCallable(Callable supplier)
Create a Mono producing its value using the provided Callable. If the Callable resolves to null, the resulting Mono completes empty.
public static Mono defer(Supplier> supplier)
Create a Mono provider that will supply a target Mono to subscribe to for each Subscriber downstream.
最佳答案
Mono.defer
通常在您已经拥有来自第三方来源的 Mono
时使用,但您希望将其创建延迟到订阅时间,因为在其创建过程中有些事情是急切地完成的。
考虑以下示例:
public static void main(String[] args)
{
callExternalService()
.repeat(3)
.subscribe();
}
private static Mono<?> callExternalService()
{
System.out.println("External service is called.");
return Mono.just("result");
}
乍一看,你会认为这个例子没有问题,但是当你检查输出时,你可以看到
External service is called
只打印了一次而不是预期的四个(一个原始的 + 三个重复),因为它是在范围之外执行的返回的
Mono
。
defer
执行
Mono
,它将按预期打印四次:
Mono.defer(() -> callExternalService())
.repeat(3)
.subscribe();
defer
的另一个用例是当您想要测试重复/重试/重新订阅逻辑并且您想要为返回
Mono
的模拟服务使用不同的返回值时。
fromCallable
非常相似,但主要用于当您已经拥有一个返回
Mono
并执行一些渴望的方法时。如果您可以完全控制代码,那么您完全可以使用
fromCallable
。
关于spring-webflux - Mono/Flux.fromCallable 和 Mono.defer 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60077499/
我正在使用 Spring webflux 和项目 react 器在家庭项目中试用 kotlin。我正在尝试对 H2 数据库进行阻塞调用,因此我按照建议使用 fromCallable 方法。根据我的理解
我正在尝试使用 Project Reactor 的 Mono.fromCallable(Callable) 执行异步操作,我注意到,在我的测试用例中,它似乎在调用线程上运行。是否在某处记录了 Mono
fromCallable和 defer有不同的实现。我听有人说defer有助于递归,但我无法生成任何显示它们之间差异的代码。 我尝试了无限数量的实现: private Observable numbe
我是使用 rxjava 的新手,我正在尝试使用 rxjava2 在后台运行一个函数,但是该方法没有被调用我正在使用的代码在下面给出让我知道它是否是在后台执行函数的正确方法: Observable.fr
Observable.fromCallable() 非常适合将单个函数转换为 Observable。但是,您如何处理函数可能抛出的已检查异常? 我见过的大多数示例都使用 lambda 表达式并“正常工
我试图理解这两种方法之间的区别,但它们对我来说似乎很相似。甚至 javadoc 也几乎相同 最佳答案 区别在于您在方法中使用的参数之间的差异。 如果您使用 Callable ,它会计算结果,如果无法计
我试图理解这两种方法之间的区别,但它们对我来说似乎很相似。甚至 javadoc 也几乎相同 最佳答案 区别在于您在方法中使用的参数之间的差异。 如果您使用 Callable ,它会计算结果,如果无法计
下面两种执行方式有什么区别? Mono.justOrEmpty(someFunction()) .doOnNext(() -> doSomeTask()).subscribe(); Mono.fr
下面两种执行方式有什么区别? Mono.justOrEmpty(someFunction()) .doOnNext(() -> doSomeTask()).subscribe(); Mono.fr
我一直在尝试在 Android 中使用 RxJava,但我试图找出 fromCallable 和 Just 之间的区别。两者都只接收一次数据,而 Create 可以多次接收数据。这是我用来试验的代码:
假设我们使用 .create() 从 SharedPrefs 获取一个通用的 Object: return Observable.create(subscriber -> { String
我想知道是否有人可以阐明这个问题,什么时候使用 Single.fromCallable( ()-> myObject ) 代替 Single.just(myObject) 根据文档,Single.fr
我想做如下的事情。在 Mono.fromCallable 中,我运行一些 block 逻辑,然后根据值返回 Mono.empty() 或值,以便它触发映射或 defaultIfEmpty。
我正在开发一个使用 RxJava 1.0 的 Spring Boot 应用程序,并且我正在使用 Groovy 编程语言使用 IntelliJ IDE 构建它。我似乎无法让它接受我的 Observabl
在以下两个示例中,第一个示例(使用 map())告诉我 readTree() 存在未处理的异常,但第二个示例则不然例子。为什么这样 ?谢谢! Mono.just(jsonString) .map(js
我们什么时候应该使用 Completable.fromAction()我们什么时候应该使用 Completable.fromCallable()是否有特定的用例 从文档看来,两者都做同样的事情,很难注
我通常需要生成一个 Mono/Flux,其值将在订阅时生成/计算。为此, fromCallable 和 defer 运算符似乎都很好。 我无法在 javadoc 中清楚地看到差异: FromCalla
我在我的应用程序中使用 RxJava 和 AWS API Gateway。 代码在这里: @Override public Single searchPostsApiCall(Stri
我是一名优秀的程序员,十分优秀!