我应该使用同步Mono :: map还是异步的Mono :: flatMap?

尼古拉斯

projectReactor文档说这Mono::flatMap异步的,如下所示。

因此,我可以编写所有方法来像这样返回Mono发布者。

public Mono<String> myMethod(String name) {
    return Mono.just("hello " + name);
}

Mono::flatMap像这样使用它

Mono.just("name").flatMap(this::myMethod);

这会使我的方法执行异步吗?这是否使我的代码比仅使用Mono :: map更具反应性,更好和更快?对于我所有的方法而言,这样做的开销是否过高?

公共最终的Mono flatMap(Function <?super T,?extended Mono <?extended R >>转换器)

异步转换此Mono发出的项目,返回另一个Mono发出的值(可能会更改值类型)。

在此处输入图片说明

Abhinaba Chakraborty

这会使我的方法执行异步吗?

让我们来看一下它的定义Asynchronous

异步编程是并行编程的一种方式,其中一个工作单元与主应用程序线程分开运行,并向调用线程通知其完成,失败或进度。

在这里,除非您使用进行操作,否则您的工作单元是在同一线程中发生subscribeOnScheduler因此这不是异步的。

这是否使我的代码比仅使用Mono :: map更具响应性,更好,更快?

没门。由于在这种情况下,发布者会Mono.just("hello " + name)立即通知订阅者我已经完成,因此正在进行处理的线程会立即从事件循环中拾取该事件并开始处理响应。

相反,map与仅转换元素的a相比,这可能在内部导致较少的操作

因此,理想情况下,flatMap当您有I / O操作(例如DB调用)或网络调用时,应该使用,这可能需要一些时间,如果所有线程都忙,则可以将其用于执行其他任务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mono flatMap + switchIfEmpty组合运算符?

来自分类Dev

我应该使用try-与资源在flatMap的I / O基流?

来自分类Dev

如何在Scala中使用for代替flatMap / map?

来自分类Dev

使用flatMap串联列表

来自分类Dev

flatMap vs map,基本的解释还可以,但是当我的转换函数自身不同步时会发生什么?

来自分类Dev

我应该如何包括函数返回一个单声道时使用Mono.zipWith?

来自分类Dev

我们应该同时提供SmtpClient包装器的异步实现还是同步实现?

来自分类Dev

React Native-我应该使用异步存储还是cookie?

来自分类Dev

使用flatMap枚举SpriteKit节点

来自分类Dev

使用 flatmap 进行搜索功能

来自分类Dev

使用 flatMap 进行类型解析

来自分类Dev

Django是同步还是异步?

来自分类Dev

PHP是同步还是异步?

来自分类Dev

尝试使用Node.js删除文件。我应该异步使用fs.unlink(path,callback)还是同步fs.unlinkSync(path)?

来自分类Dev

尝试使用Node.js删除文件。我应该异步使用fs.unlink(path,callback)还是同步fs.unlinkSync(path)?

来自分类Dev

从异步完成处理程序返回的 RXSwift flatmap

来自分类Dev

`java.lang.NoSuchMethodError:cats.FlatMap.map2` 在运行时使用 `.sequence`

来自分类Dev

我应该如何命名Mono.Cecil添加的新成员?

来自分类Dev

Spark map和flatMap结果类型

来自分类Dev

Scala - map 和 flatMap 之间的区别

来自分类Dev

为什么我不能尝试FlatMap?

来自分类Dev

我可以不映射/ flatMap OptionalInt吗?

来自分类Dev

linux crons是异步的还是同步的?

来自分类Dev

JavaScript函数是同步还是异步?

来自分类Dev

Promise是异步还是同步解决?

来自分类Dev

PURE Javascript是同步的还是异步的?

来自分类Dev

服务停止是同步还是异步?

来自分类Dev

JavaScript函数是同步的还是异步的?

来自分类Dev

Promise是异步还是同步解决?

Related 相关文章

  1. 1

    Mono flatMap + switchIfEmpty组合运算符?

  2. 2

    我应该使用try-与资源在flatMap的I / O基流?

  3. 3

    如何在Scala中使用for代替flatMap / map?

  4. 4

    使用flatMap串联列表

  5. 5

    flatMap vs map,基本的解释还可以,但是当我的转换函数自身不同步时会发生什么?

  6. 6

    我应该如何包括函数返回一个单声道时使用Mono.zipWith?

  7. 7

    我们应该同时提供SmtpClient包装器的异步实现还是同步实现?

  8. 8

    React Native-我应该使用异步存储还是cookie?

  9. 9

    使用flatMap枚举SpriteKit节点

  10. 10

    使用 flatmap 进行搜索功能

  11. 11

    使用 flatMap 进行类型解析

  12. 12

    Django是同步还是异步?

  13. 13

    PHP是同步还是异步?

  14. 14

    尝试使用Node.js删除文件。我应该异步使用fs.unlink(path,callback)还是同步fs.unlinkSync(path)?

  15. 15

    尝试使用Node.js删除文件。我应该异步使用fs.unlink(path,callback)还是同步fs.unlinkSync(path)?

  16. 16

    从异步完成处理程序返回的 RXSwift flatmap

  17. 17

    `java.lang.NoSuchMethodError:cats.FlatMap.map2` 在运行时使用 `.sequence`

  18. 18

    我应该如何命名Mono.Cecil添加的新成员?

  19. 19

    Spark map和flatMap结果类型

  20. 20

    Scala - map 和 flatMap 之间的区别

  21. 21

    为什么我不能尝试FlatMap?

  22. 22

    我可以不映射/ flatMap OptionalInt吗?

  23. 23

    linux crons是异步的还是同步的?

  24. 24

    JavaScript函数是同步还是异步?

  25. 25

    Promise是异步还是同步解决?

  26. 26

    PURE Javascript是同步的还是异步的?

  27. 27

    服务停止是同步还是异步?

  28. 28

    JavaScript函数是同步的还是异步的?

  29. 29

    Promise是异步还是同步解决?

热门标签

归档