1
在下面的代碼中,loadMoreStrings()方法在getLabelsFromServer()完成之前執行它的call()方法。我仍然在學習RxJava,但我無法讓它正常運行。爲什麼我的RxJava observable在它調用的函數完成之前發出結果?
private void fetchLabels() {
listObservable = Observable.fromCallable(new Callable<List<String>>() {
@Override
public List<String> call() {
return apiService.getLabelsFromServer();
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
loadMoreStrings();
}
@Override
public void loadMoreStrings() {
stringListObservable.subscribe(new Action1<List<String>>() {
@Override
public void call(List<String> label) {
myStrings.addAll(label);
}
});
}
它在loadMoreStrings()方法中訂閱。 –
如果'listObservable'和'stringListObservable'是相同的,並且你得到一個'onNext()'調用,那麼它工作正常,否則你會得到'onCompleted()'或'onError()' –