android - 循环完成迭代时的 RxJava 调用方法
问题描述
我有问题。解决方案很简单,但我的头太热了......
我想在 forEach 循环完成工作后调用一次方法。
感谢您提供任何示例解决方案!
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)
})
})
}
建议的解决方案
Observable.merge(workers.map { deleteOldWorkers(it.event_planner_id!!) })
解决方案
Observable.merge(workers.map { deleteOldWorkers(it.event_planner_id!!) }).doOnComplete()也许?
推荐阅读
- ios - 如何设置tableView中第一个单元格的rowHeight
- variables - Terraform 变量在 tfvars 中定义时提示我
- ruby-on-rails - 在 Rails 中创建对象时生成 UUID
- javascript - IE11:document.getSelection 在 IE11 上的 Input(即文本)标签内无法正常工作
- microsoft-graph-api - 执行 `Me.Request().Expand("Manager").GetAsync()` 时没有管理器
- jquery - 切换表 - 增加行跨度以容纳额外的切换行
- android - 2 android中的导航栏(顶部和底部)
- android - 清单合并失败:属性 application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory
- mysql - Django MySQL 连接中的 SSL 错误(2026 SSL_CTX_set_tmp_dh 失败)
- wordpress - 在 Google Cloud Platform 上的另一个 WordPress 实例的子目录中安装 WordPress 站点