如何检查 RXJava 是否完成或从队列中清空
How to check if RXJava finish or empty from queue
我有一个使用 Retrofit 和 RXJava 循环请求的函数,如下所示
for (i in month..12) {
if (Conn.connection(applicationContext)) {
Api.create().getDateInMonth("2019-$i-01")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<DateDataResponse> {
override fun onSubscribe(d: Disposable) {}
@SuppressLint("NewApi")
override fun onNext(dateDataResponse: DateDataResponse) {
Log.d("OnSuccess", "success")
}
@SuppressLint("NewApi")
override fun onError(e: Throwable) {
Log.d("onError", "error" + e.message)
}
override fun onComplete() {
Log.d("onComplete", "onComplete")
}
})
} else
Log.d("onError", "No Internet Connection")
}
}
所以如果某些请求错误或成功,它将继续直到第 12 个请求完成。我想检测我是否已经收到我的请求的所有响应
如果将其变成单链,则可以使用 onComplete()
回调来验证所有请求是否已完成。例如:
Observable.range(0, 12)
.filter { i-> Conn.connection(applicationContext) }
.flatMap { i -> Api.create().getDateInMonth("2019-$i-01") }
.subscribeOn(io())
.observeOn(mainThread())
.subscribe({ i-> }, { t-> }, {/*onComplete*/ })
我有一个使用 Retrofit 和 RXJava 循环请求的函数,如下所示
for (i in month..12) {
if (Conn.connection(applicationContext)) {
Api.create().getDateInMonth("2019-$i-01")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<DateDataResponse> {
override fun onSubscribe(d: Disposable) {}
@SuppressLint("NewApi")
override fun onNext(dateDataResponse: DateDataResponse) {
Log.d("OnSuccess", "success")
}
@SuppressLint("NewApi")
override fun onError(e: Throwable) {
Log.d("onError", "error" + e.message)
}
override fun onComplete() {
Log.d("onComplete", "onComplete")
}
})
} else
Log.d("onError", "No Internet Connection")
}
}
所以如果某些请求错误或成功,它将继续直到第 12 个请求完成。我想检测我是否已经收到我的请求的所有响应
如果将其变成单链,则可以使用 onComplete()
回调来验证所有请求是否已完成。例如:
Observable.range(0, 12)
.filter { i-> Conn.connection(applicationContext) }
.flatMap { i -> Api.create().getDateInMonth("2019-$i-01") }
.subscribeOn(io())
.observeOn(mainThread())
.subscribe({ i-> }, { t-> }, {/*onComplete*/ })