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

RxJava如何在flatmap中重试部分链

汤兴生
2023-03-14
Observable.just()
    .flatMap()
    .flatMap()
  <-Back to This line-----|
    .flatMap()            |
    .flatMap()            |
                          |
    .flatMap()            |
    .flatMap()            |             
    ------------------->Error Occur
    .flatMap()
    .flatMap()

我有一个flatMap链,在一个flatMap中,当它发出错误时,我想回到flatMap链的一部分,我尝试使用缓存和重试操作符,但dispose()无法阻止它

共有1个答案

单于奇略
2023-03-14

你必须将它们转化为一个内部流,例如:

Observable.just()
    .flatMap()
    .flatMap(v -> 
        Observable.just(v)
        .flatMap()            
        .flatMap()            
                          
        .flatMap()            
        .flatMap()                         
        .retry()
    )
    .flatMap()
    .flatMap()
 类似资料:
  • switchmap的rxjava文档定义相当模糊,它链接到与FlatMap相同的页面。这两个操作员有什么不同?

  • 问题内容: 什么时候在 RxJava中* 使用vs ? * 举例来说,假设我们要将包含JSON的文件映射到包含JSON的字符串中, 使用,我们必须以某种方式处理。但是如何? 使用,它更加冗长,但是如果我们选择其他地方甚至重试,我们可以将问题转发到链的下方并处理错误。 我喜欢的简单性,但是喜欢的错误处理(不是冗长)。我还没有看到关于此的最佳实践,并且很好奇在实践中如何使用它。 问题答案: 将一个事件

  • 例如,我们希望将包含JSON的文件映射到包含JSON的字符串中-- 使用,我们必须以某种方式处理。但怎么做呢?: 使用,它要冗长得多,但我们可以将问题转发到链中,如果我们选择其他地方,甚至重试,就可以处理错误: 我喜欢的简单性,但喜欢的错误处理(而不是冗长)。我还没有看到任何关于这方面的最佳实践,我很好奇这在实践中是如何使用的。

  • 问题内容: 我们有一个基于JBoss 7.1, JSF2 和Primefaces 3.3 的Web应用程序。 在我们的其中一个页面上,有10个项目可供显示;然后用户可以单击某种“显示更多”按钮,并且通过ajax显示更多的10个项目。用户可以单击“显示更多”按钮,直到没有其他项目可以显示为止。注意:这不是分页,每单击一次“显示更多”,显示的列表就会变长。 实际上,当用户单击按钮时,服务器将返回旧项目

  • 问题内容: 似乎这两个功能非常相似。它们具有相同的签名(接受),并且它们的大理石图看起来完全相同。无法在此处粘贴图片,但这是用于concatMap的图片,这是用于flatMap的图片。在结果的描述中似乎存在一些细微的差异,其中所产生的包含通过合并产生的可观察变量产生的项目,而所产生的包含通过首先合并所产生的可观察变量并发出合并结果而产生的项目。 但是,这种微妙之处对我来说还不清楚。任何人都可以更好

  • https://projectreactor.io/docs/core/release/api/reactor/core/publisher/doc-files/marbles/flatMapForFlux.svg 这个问题是关于项目反应器中Flux发布者中的平面图函数。根据我们对平面地图的理解,我们必须返回一个发布者,平面地图将在内部订阅该发布者。我们想知道的是线程如何处理这种情况。是要多线程还