【发布时间】:2019-07-22 01:41:12
【问题描述】:
基本上我需要创建一个没有初始值的 Observable 列表。我订阅了 Observables 列表,并将根据所有 Observables 的响应提供所需的结果。我使用 zip 运算符。
问题是我最初需要创建 Observables,将它们添加到列表中并使用 zip 运算符。只是后来我使用 Retrofit 进行网络请求,我需要更新列表中 observable 的值,这样我的整个 zip 运算符才能正常工作。
但是,我没有找到一种方法来强制使用 Retrofit 的响应更新列表中的 observable。这似乎很容易,但我没有找到任何解决方案..唯一的想法是使用大量主题并将它们添加到列表中......
List<Observable<Object>> listObservables = new ArrayList<>();
//Adding initial request
Observable<Object> testObservable = RetrofitFactory.create().startProcess();
listObservables.add(testObservable);
Observable.concatDelayError(listObservables).subscribe(response ->
{
//This is where all results should be managed
Log.d("response", String.valueOf(response));
},
error ->
{
Log.d("response", String.valueOf(error));
});
//Actual request occurs much later in application
listObservables.get(0).subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread()).subscribe(response ->
{
// the response of this, should notify concatDelayError
Log.d("respoonse", String.valueOf(response));
});
【问题讨论】:
-
我不完全理解你的问题。您能否发布您的代码以便更好地理解您的问题?
-
好的,我已经更新了:)
标签: android observable retrofit rx-java rx-java2