我是 Rx 的新手,我正在使用 Rx 进行一次 API 调用。它正在工作,但问题是它在我收到响应或错误后不断地制作 API。我正在使用 MVVM 模式。
这是我在视图模型中观察结果的代码:
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