Метод вызова RxJava Когда цикл завершит итерацию - PullRequest
0 голосов
/ 10 октября 2018

У меня проблема.Решение может быть простым, но моя голова перегрета ...

Я хочу вызвать метод ONCE после завершения цикла 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)
                })
    })
}
  1. Предлагаемое решение

        Observable.merge(workers.map {
        deleteOldWorkers(it.event_planner_id!!)
    })
    

enter image description here

1 Ответ

0 голосов
/ 10 октября 2018

Observable.merge (worker.map {deleteOldWorkers (it.event_planner_id !!)}). DoOnComplete () возможно?

...