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

有没有可能从进入地图/平面地图的可观察对象中返回两种不同的类型?

麹正业
2023-03-14

我想知道是否可以这样做:

我有一个函数,它返回一个可观察量,如下所示:

Observable<JSONObject> = someMethodCall().map( x -> {
/// do something
return new JSONObject().put("id", 12346");
});

现在我想深入到//中,想添加一些逻辑,这样我就可以返回一个<code>可观察值。错误,因此我不能使用映射,但无论是平面映射还是平面映射,我想知道是否有任何方法可以使用平面映射来处理这种行为?

共有1个答案

拓拔嘉运
2023-03-14

假设您希望通过 onError 传播错误,以便您可以使用 onErrorReturnonErrorResumeNext 之类的内容,则可以像这样使用 flatMap

Observable<JSONObject> = someMethodCall().flatMap( x -> {
    try {
      //do something....
      return Observable.just(new JSONObject().put("id", 12346"));
    } catch (Throwable t) {
      return Observable.error(t);
    }
  });
 类似资料:
  • 有人能向我解释一下为什么运算符可以接受返回或的函数吗? 官方文件说: FlatMap运算符通过将您指定的函数应用于源可观察对象发出的每个项目来转换可观察对象,其中该函数返回本身发出项目的可观察对象。 为什么它也可以返回数组? 例如,它们都是有效的: 但这不起作用:

  • 最新消息 问题似乎是地图函数没有在“失败”的请求上运行。这意味着,如果我正在交谈的API返回一个错误(或其他4xx错误)Angular将把它视为失败,并导致观察者运行订阅的错误回调,跳过进程中的映射函数。 是否可以强制Angular将某些4xx错误视为成功的请求,或者强制map函数运行,即使Observable返回错误? 我有以下代码运行在我的Angular2应用程序: 代码执行得很好,只是没有启

  • 假设我有一个返回列表的博客帖子api 从列表创建可观察 将每个可观察拆分为

  • 我有一个组件订阅服务中的一个可观察对象。该方法反过来订阅另一个服务中的可观察对象。我想将一个数组从最后一个服务传递回第一个服务,然后第一个服务将该数组传递回组件。更具体地说,该组件调用其本地服务,然后调用一个数据服务,该数据服务通过http客户端访问我的数据库。http客户端正在工作,数据服务将数组返回给本地服务。本地服务接收数组,但我不知道如何将该数组作为可观察对象传递回组件。以下是简短的代码块

  • 这两种方法有什么区别:和? 请举个例子。

  • 作为标题, 为了简单起见,如果我想用不同的UUID执行两次读取操作: (我知道RxAndroidBle提供了多重读取功能) 为什么second subscribe()得到blealReadyConnectionedException? =======更新========== 我找到了解决方案,如果我修改 装置建立连接(false)== ConnectionSharingAdapter将执行如下操作