Я новичок в Rx, и я делаю один вызов API, используя Rx. Он работает, но проблема в том, что он постоянно создает API после того, как получил ответ или ошибку. Я использую шаблон MVVM.
Вот мой код, как я наблюдаю результат в View Model:
val usersList = getGitHubUsersUseCase.getUsers(since.toInt())
usersList?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.subscribe({
if (it.error == null) {
var sinceState = SinceState(since, since.isNotEmpty(), it.users)
stateLiveData.postValue(sinceState)
} else {
var sinceState =
SinceState(since, since.isNotEmpty(), emptyList(), it.error?.message)
stateLiveData.postValue(sinceState)
}
}, {
var sinceState = SinceState(since, since.isNotEmpty(), emptyList(), it.message)
stateLiveData.postValue(sinceState)
})
Как мне прекратить наблюдать, как только я получил ответ или ошибку? Я что-то упускаю?
Если я не прекращаю непрерывно совершать вызовы, то слишком много вызовов API и сервер начинает возвращаться:
HTTP 403 запрещено