1
我的代碼中有兩個可觀察對象。第一個是搜索按鈕點擊和文本更改的合併觀察。如何在rxjava2中鏈接observables
Observable<String> buttonClickStream = createButtonClickObservable();
Observable<String> textChangeStream = createTextChangeObservable();
Observable<String> searchTextObservable
=Observable.merge(buttonClickStream,textChangeStream);
disposable = searchTextObservable
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(s -> showProgressBar())
.observeOn(Schedulers.io())
.map(this::getStarredRepos)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(gitHubRepos -> {
hideProgressBar();
showResults(gitHubRepos);
});
第二可觀察到的是用於獲取從服務器響應:
private List<GitHubRepo> getStarredRepos(String username) {
RestInterface restService=RestService
.getClient().create(RestInterface.class);
restService.getStarredRepos(username)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::handleResponse, this::handleError);
return repoList;
}
現在的問題是,hideProgressBar()和showResults()方法用handleResponse之前正在執行()結束。
我是新來RxJava,所以如果有什麼錯誤代碼,請糾正。
謝謝..它的工作原理 – Yogesh