使用rxjava的多个异步调用

使用rxjava的多个异步调用,java,asynchronous,parallel-processing,Java,Asynchronous,Parallel Processing,如何使用Rxjava实现多个异步调用,其中每个调用都以块的形式获得响应 假设当用户发起请求时,我需要从一组异步服务中获取各种数据。 用户请求数据->我需要以异步方式调用服务A、服务B和服务C 这些服务中的每一个都是以一种方式定义的,对于给定的请求a->它们将以块的形式响应数据,比如A1、A2、A3和AF。类似地,服务B将响应B1、B2、BF,服务C将以块C1、C2、C3、C4、CF响应。 其中数字表示块,F表示最终响应。如果响应已发送所有请求信息的数据,则响应具有final标志 对于来自用户的一

如何使用Rxjava实现多个异步调用,其中每个调用都以块的形式获得响应

假设当用户发起请求时,我需要从一组异步服务中获取各种数据。 用户请求数据->我需要以异步方式调用服务A、服务B和服务C

这些服务中的每一个都是以一种方式定义的,对于给定的请求a->它们将以块的形式响应数据,比如A1、A2、A3和AF。类似地,服务B将响应B1、B2、BF,服务C将以块C1、C2、C3、C4、CF响应。 其中数字表示块,F表示最终响应。如果响应已发送所有请求信息的数据,则响应具有final标志

对于来自用户的一个给定请求,我调用A、B、C(可以是顺序的,也可以是并行的),我希望处理来自这些服务的所有响应,并知道我何时从这三个服务获得数据。对我来说,我需要知道处理来自所有服务的数据时的完整状态

还有如何处理订阅服务器

public void processUserRequest(){
    Observable.fromIterable(listofservices)
              .flatMap (service -> invokeAsyncService(service))
              .subscribe( resp -> process response, error -> process 
    error , () -> done);
}  //end processUserRequest


public Observable invokeAsyncService(){
   PublishSubject subject = PublishSubject.create();
   callService(request, subject);  // internally in callService subject's      onNext and onComplete are used for emitting responses from the service call. 
   return subject;
} //end invokeAsyncService

我创建了一个ParentObservable,它是每个服务调用的多个PublishSubject的可观察对象。PublishSubject的onNext和onComplete用于发布块事件和来自服务的最终响应。我有一个根可观测的订户。一切似乎都很好,但不确定它是否正确。可观察。fromIterable(服务列表)。flatMap(服务->调用同步服务(服务))。订阅(响应->流程响应,错误->流程错误,()->完成);public Observable invokeAsyncService(){PublishSubject subject=PublishSubject.create();callService(请求,主题);//在callService内部,我在传递的主题上使用onNext和onComplete从服务调用发出响应。返回主题;}