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

如何在rxJava中映射错误?

令狐宜民
2023-03-14

如何转换rxJava中可观察对象返回的错误?现在我有了这个方法:


@Override
    public Maybe<JsonObject> getUser(String token) {
        return tokenManager.getTokenInfo(token)    //returns a Single<UserInfo>
            .flatMapMaybe(userInfo -> userRepo.findOne(userInfo));
    }

这种行为是,通过getTokenInfofindOne传递的任何异常都会传播到此函数返回值的订阅者。是否有可能将例外映射到其他东西?就像

@Override
    public Maybe<JsonObject> getUser(String token) {
        return tokenManager.getTokenInfo(token)
            mapError(exc -> new AuthException("invalid token"))  //don't let subscriber get raw exc
            .flatMapMaybe(userInfo -> userRepo.findOne(userInfo))
            .mapError(exc -> new NetworkException());


    }

共有1个答案

濮宇定
2023-03-14

使用带有所需异常源的错误onErrorResumeNext

return tokenManager.getTokenInfo(token)
       .onErrorResumeNext(exc -> Single.error(new AuthException("invalid token")))
       .flatMapMaybe(userInfo -> userRepo.findOne(userInfo))
       .onErrorResumeNext(exc -> Maybe.error(new NetworkException()));

 类似资料:
  • 问题内容: 如何在RxJava2中将一个发生的异常映射到另一个异常?例如: 在这种情况下,我最终收到包含和的内容,但我只想收到。救命! 问题答案: 您可以使用onErrorResumeNext并从中返回Observable.error(): 编辑 该测试对我来说是合格的:

  • 我知道如何变换

  • 问题内容: 我正在从在线api上以{{key:object},{key:object},…的形式获取一个字典,例如1000个Objects}。我想用reactJS做类似的事情 该映射适用于数组,但显然不适用于字典。我怎样才能取得类似的成绩? 问题答案: Javascript中的“字典”被称为对象,您可以以与数组非常相似的方式遍历它们。 如果您正在考虑使用map,以便在迭代结束时拥有一个完整的数组,

  • 问题内容: 我有以下枚举如何在jna中映射? 该枚举在结构上进一步引用。 阿卜杜勒·哈利克(Abdul Khaliq) 问题答案: 如果使用的是JNA,则可能要显式指定Java中的枚举值。默认情况下,Java的基本枚举类型并没有真正为您提供该功能,您必须为EnumSet添加一个构造函数(请参阅this和this)。 编码C枚举的一种简单方法是使用包装在与枚举同名的类中的公共静态最终const in

  • 我有以下代码: 如果我想迭代Map,上面的代码工作得很好。但是现在我有这样的东西。 我想在映射中遍历映射,并获取它的键和值。我想得到key1、value1、key2、value2、key3、value3的值,依此类推。那我该怎么做呢?

  • 我有一个从RESTendpoint返回的列表。我需要将该列表分为多个类别(类别是列表中每个条目中的一个项目)。各个类别将写入缓存,以便以后更快地查找。 我不知道我能不能。映射()条目,并提供多个filter()或某种类型的case语句,以将类别条目放入正确的bucket中。 用rxJava实现这样的东西听起来合理吗? 更新:非工作版本 然而,这些按顺序触发,这是我的理解,第二个可观察对象没有发送任