Android 循环将完成迭代时RxJava调用方法
我有问题。解决方法可能很简单,但我的头脑过热 我想在forEach循环完成作业后调用一次方法 感谢您提供的任何示例解决方案Android 循环将完成迭代时RxJava调用方法,android,kotlin,rx-java,rx-android,Android,Kotlin,Rx Java,Rx Android,我有问题。解决方法可能很简单,但我的头脑过热 我想在forEach循环完成作业后调用一次方法 感谢您提供的任何示例解决方案 override fun saveWorkers(workers: ArrayList<Worker>): Single<Boolean> { LogMgr.d(TAG, "saveWorkers() : $workers") // remove old workers for current Event Planner and
override fun saveWorkers(workers: ArrayList<Worker>): Single<Boolean> {
LogMgr.d(TAG, "saveWorkers() : $workers")
// remove old workers for current Event Planner and save new
workers.forEach {
deleteOldWorkers(it.event_planner_id!!)
.subscribeOn(getSubscriptionSchedulerForSave())
.subscribe({ status ->
}, { error ->
})
}
return Single.create({ emitter ->
RXModelAdapter.from(Worker::class.java)
.saveAll(workers)
.subscribeOn(getSubscriptionSchedulerForSave())
.subscribe({
LogMgr.d(TAG, "saveWorkers() onComplete")
emitter.onSuccess(true)
}, {
LogMgr.e(TAG, "saveWorkers() onError ", it)
emitter.onError(it)
})
})
}
可观察的.merge(workers.map{deleteOldWorkers(it.event\u planner\u id!!)}).doOnComplete()可能?编译错误与“deleteOldWorkers()”返回类型有关。也许您需要明确地定义它。在我这方面,表达式“val workers=ArrayList()”和“Observable.merge(workers.map{Observable.just(it)})”可以正常编译。
Observable.merge(workers.map {
deleteOldWorkers(it.event_planner_id!!)
})