当前位置: 首页 > 知识库问答 >
问题:

链接多个发布者以改变回应

艾凌龙
2023-03-14

我想在每个通量事件后链接一个单声道。单声道发布者将需要通量发布的每个事件的信息。响应应该是带有通量事件和单声道响应数据的通量。

挖掘之后,我在平面地图中找到了一张地图。代码如下所示:

override fun searchPets(petSearch: PetSearch): Flux<Pet> {
    return petRepository
        .searchPets(petSearch) // returns Flux<pet>
        .flatMap { pet -> 
            petService
            .getCollarForMyPet() // returns Mono<collar>
            .map { collar -> PetConverter.addCollarToPet(pet, collar) } //returns pet (now with with collar)
        }
}

我主要关心的是:

  • 代码气味是在平面图中使用地图的吗
  • pet可变内容是否会因多个流量事件以及单次事件而受到比赛条件的影响
  • 有没有更好的方法来处理这种行为

共有1个答案

邵锐
2023-03-14

这种方法非常好。

Reactive Streams规范要求onNext事件不重叠,因此不会出现竞争条件的问题。

平地图引入了并发,因此对PetService的多次调用将并行运行。这不应该是个问题,除非search chPet两次发出Pet的某个实例。

并不是说由于这种并发,在这种情况下,Flat Map可以重新排序宠物。想象一下,搜索返回petA然后返回petB,但是petService调用petA需要更长的时间。在平面图的输出中,petB将首先发出(带有其项圈设置),然后是petA

 类似资料:
  • 我有一个智能组件,它调用一个从api检索所有信息的服务,并加载一组显示所有信息的哑组件。 当初始化时,智能组件从url中获取id,并将其发送给服务,以从api中获取所有数据,并且一切都按照预期工作,但是当我单击页面上的链接之一,该链接应该加载相同的页面但不同的id,url改变了,但不改变视图,并且我在控制台上也没有看到任何activity。 这是智能组件: 这是显示链接的哑组件: 这是从“第一个”

  • 问题内容: 如此处概述: http://docs.angularjs.org/guide/directive Angular js指令采用两种不同类型的链接函数: 预链接功能在链接子元素之前执行。执行DOM转换并不安全,因为编译器链接功能将无法找到正确的链接元素。 链接后功能在链接子元素之后执行。在后链接功能中执行DOM转换是安全的。 此外,如果给定匿名功能,则默认键似乎将绑定到该键。 我何时,为

  • Make Spring RabbitMQ在缺少exchange时继续失败 我为多个队列注册MessageListenerContainer。 我应该在哪里以及如何配置通道返回侦听器?-我认为我这样做是错误的。我将CachingConnectionFactory配置插入createQueueBMessageListener(...)-负责创建多个MessageListeners之一的方法。 Cach

  • 问题内容: 我正在寻找一种可以链接多个HTTP请求的良好模式。我想使用Swift,最好使用Alamofire。 举例来说,我要执行以下操作: 发出PUT请求 发出GET请求 用数据重新加载表 承诺的概念似乎很适合此目的。如果我可以执行以下操作,则PromiseKit可能是一个不错的选择: 但这是不可能的,或者至少我不知道。 如何在不嵌套多个方法的情况下实现此功能? 我是iOS的新手,所以也许我缺少

  • 我正在尝试将我的两个Android布局连接起来,并完成这个过程。 MainActivity.java 记录活动。Java语言 content_main.xml recording.xml AndroidManifest。xml 堆栈跟踪04-22 14:24:09.415 4470-4470/andler.java:102E/AndroidRuntime: FATAL EXCEPTION: mai