境界把交易变成可观察的

有时我想在使用Retrofit的服务调用之后执行写入操作。 由于我的默认服务器调用在io线程上执行,我只想使用Realm写入操作的相同线程。

我正在使用它:

serviceInteractor.uploadMeasure(measure) .filter { uploaded: Boolean -> uploaded } // filter only the ones successfully uploaded .flatMap { realmInteractor.markMeasureSent(measure.timeStamp) } .subscribe( { success -> /* do nothing */ }, { inDebug { it.printStackTrace() } } ) 

我的境界可观察如下:

 fun markMeasureSent(measureId: Long?): Observable<Unit> { if (measureId == null) Observable.just(Unit) return Observable.fromCallable { Realm.getDefaultInstance().use { it.executeTransaction { tRealm -> assertNotMainThread() val measure = tRealm.where(Item::class.java) .equalTo(item, measureId) .findFirst() measure.sent = 1 } } } } 

这是把Realm事务包装成可观察的吗?