just<E>(element: E) -> Observable<E>
Возвращает наблюдаемую последовательность, которая содержит один элемент. Вместо этого, вы должны использовать что-то вроде этого:
create<E>(subscribe: (AnyObserver<E>) -> Disposable) -> Observable<E>
Создать метод создает наблюдаемую последовательность из указанной подписываться реализации метода.
В вашем случае:
private let realm = try! Realm()
func save(customObject: CustomObject) -> Observable<Bool> {
return create({ observer -> Disposable in
do {
try self.realm.write {
self.realm.add(customObject, update: true)
observer.onNext(true)
observer.onCompleted()
}
} catch {
// .Error sequence will be automatically completed
observer.onError(NSError(domai...)
}
// if realm.write is sync task(by default it is, as I know) you can actually return NopDisposable
return NopDisposable.instance
// otherwise you should cancel write transaction in AnonymousDisposable
})
}
AnonymousDisposable это действие, которое называется в случае, если вы хотите получить прерывают. Скажите, что вы оставите свой контроллер просмотра или приложение должно быть выполнено с помощью этой услуги, и вам больше не нужно вызывать этот запрос. Это отлично подходит для загрузки видео или чего-то большего. Вы можете сделать request.cancel(), который очистит все ресурсы, когда вы закончите с ним. Это вызвано либо завершением, либо ошибкой.
'вернуть failWith (MyError())' –