如何使用 rxJava 进行乘法请求

如何通过改造提出 10 个并行请求。请帮我解决这个问题。我尝试使用 zip 运算符,但我只能在 Java 中使用 Function9。


public Single<List<Response<MyResponse>>> getRequest(...) {


        return Single.zip(getNyRequest(sessionId, RequestParams.getParams( "")),

                getNyRequest(sessionId, RequestParams.getParams( "")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                getNyRequest(sessionId, RequestParams.getParams("")),

                (result1, result2, result3, result4, result5, result6, result7, result8, result9, result10) -> {


                });

}


BIG阳
浏览 109回答 1
1回答

萧十郎

您可以使用可迭代的:&nbsp; List<Single<String>> singles = Arrays.asList(Single.just("1"), Single.just("2"), Single.just("3"));&nbsp; Single<List<String>> zip = Single.zip(singles, objects -> Stream.of(objects).map(o -> (String) o).collect(Collectors.toList()));在你的情况下:&nbsp;List<Single<Response<MyResponse>>> singles = Arrays.asList(getNyRequest(sessionId, RequestParams&nbsp; &nbsp; &nbsp; &nbsp; .getParams("")), getNyRequest(sessionId, RequestParams.getParams("")), ....);&nbsp;Single<List<Response<MyResponse>>> zip = Single.zip(singles,&nbsp; &nbsp; &nbsp; &nbsp; objects -> Stream.of(objects).map(o -> (Response<MyResponse>) o).collect(Collectors.toList()));编辑: 每 10 分钟重复一次:getRequest(...).repeatWhen(c -> c.delay(10, TimeUnit.MINUTES)).subscribe();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java