境界把交易变成可观察的
有时我想在使用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事务包装成可观察的吗?