私のコードに2つの観測値があります。最初のものは、検索ボタンのクリックとテキストの変更のためのマージされたオブザーバブルです。rxjava2で観測値を連結する方法
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(IS)とshowResults()メソッドは、のhandleResponse()終了する前に実行されます。
私はRxJavaを初めて使用しています。そのため、コードに問題があれば修正してください。
ありがとうございます。 – Yogesh