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() कर सकते हैं जो आपके द्वारा किए जाने पर सभी संसाधनों को साफ़ करता है। इसे या तो पूर्णता या त्रुटि पर बुलाया जाता है।
स्रोत
2015-12-28 17:17:53
'लौट failWith (MyError())' –