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

RxJava2:映射器函数中是否允许链接?

都浩淼
2023-03-14

在下面的代码中,函数 f 返回 Single

   Observable.map { line ->
              f(line).doOnError { e ->
                    println("Error:$e")
                }
        }
        .subscribe({ record -> println(record) }, { e -> println("Error2:$e") })

map中的< code>println("Error:$e")不会执行,但是我可以在订阅者中打印错误。似乎不允许在映射器函数中使用链接。正确吗?如果是,为什么?

编辑:也尝试了平面图,但结果相同。

   Observable.flatmap { line ->
              f(line).toObservable().doOnError { e ->
                    println("Error:$e")
                }
        }
        .subscribe({ record -> println(record) }, { e -> println("Error2:$e") })

共有1个答案

金理
2023-03-14

这正如预期的那样工作:

@Test
public void test() {
    Observable.just(1)
    .flatMap(v -> single(v)
            .toObservable()
            .doOnError(w -> System.out.println("Error2 " + w))
    )
    .subscribe(v -> System.out.println(v), e -> System.out.println("Error " + e));
}

Single<Integer> single(Integer v) {
    return Single.error(new IOException());
}

指纹:

Error2 java.io.IOException
Error java.io.IOException
 类似资料:
  • 问题内容: 这看起来很基础,是否允许您将链接放在链接内? 我试图使整个灰色条都可单击以到达某个地方,但是如果用户单击滚轮或移动箭头,则它们是其他链接。查看我当前的代码: 这是一个好习惯吗?我做错了吗?你会怎么做?谢谢您的帮助! 问题答案: 直接来自W3C for HTML4: 12.2.2嵌套链接是非法的由A元素定义的链接和锚点不得嵌套;A元素不得包含任何其他A元素。 由于DTD将LINK元素定义

  • 问题内容: 有关流水线函数的文档说,在SQL语句(通常是a )中使用DML时是不允许的,并且在大多数示例中,流水线函数用于数据生成或转换(接受custor作为参数),但不发布任何DML。 DML语句。 现在,从技术上讲,可以使用SELECT而不会出现Oracle的任何错误(不会发生ORA 14551)。但是,我有选择的可重现的奇怪行为的经验;即使是 没有 被使用,被检索的行似乎 并不 总是把当前本

  • 怎么做?没有找到可以基于类型动态映射的示例。我发现这种方法在、Google中都非常方便。感谢你的帮助!

  • 问题内容: 在下面的示例中,我想创建一个仅适用于带有文本“ Blockhead”的标头的CSS规则。 我可以使用括号吗?如果没有,我有什么选择? 问题答案: 不,括号不是CSS选择器中的有效运算符。他们是保留给功能符号,如,和。 无论如何,您不需要它们。本身就可以正常工作。 这是因为选择器和组合器的序列始终是线性读取的。组合器没有任何优先级。选择器可以解释为 选择 紧跟在class类元素之后的元素

  • 问题内容: MySQL是否允许使用嵌套事务? 问题答案: 支持。 您可以执行以下操作:

  • 问题内容: 我有一个Dockerfile,其中在指令中使用了: arg通过docker-compose传递: 但是,似乎并未针对展开。我之后。 这是检查显示的内容: 问题答案: 问题是只能在构建时使用,而在运行时正在执行。我想现在唯一实现您想要的方法是在Dockerfile中使用该值设置环境变量。