reactive cocoa - RACSignal and replayLazily. How can I handle errors? -
यह शानदार ढंग से काम करता है ...
@interface हैलो: NSObject @property (nonatomic, मजबूत, केवल पढ़ने के लिए) RACSignal * संकेत; @end @ इंन्टरफ़ेस हैलो () @ प्रॉपर्टी (नॉनैटोमिक, मजबूत, रीडराइट) आरएसी सिग्नल * सिग्नल; @end @implementation हैलो - (instancetype) init {self = [super init]; अगर (स्वयं) {self.signal = [[[सृजनात्मक बनाएं] सिग्नल] फिर से खेलना]; } स्वस्थ वापसी; } - (आरएसीसिग्नल *) सिनैनल {रिटर्न [आरएसीसिंगल बनाओ सिग्नल: ^ आरएसी डिस्पोजेबल * (आईडी & लेफ्टिनेंट; आरएसीएसब्सबीबर & gt; ग्राहक) {[[सर्विस मिल इंस्टेंस] होप प्रोडक्ट्स: ^ (एनएसएआरआरई * प्रोडक्ट्स) {[सब्सक्राइबर प्रेषण: उत्पाद]; [ग्राहक भेजेंसंपूर्ण]; } त्रुटि: ^ (एनएसईआरआर * त्रुटि) {[ग्राहक भेजना त्रुटि: त्रुटि]; }]; }]; } @end ... जब तक कोई त्रुटियां नहीं हैं I
मुझे लगता है इसका कारण यह है कि RACMulticastConnection के लिए SourceSignal ने एक त्रुटि भेजी है
यह व्यवहार मैं चाहता हूं
- यदि पहले ग्राहक का अनुरोध शुरू होता है तो
- यदि कोई दूसरा ग्राहक सदस्यता लेता है? चल रहे अनुरोध पर हुक
- अगर अनुरोध सफल होता है, तो किसी भी नए सदस्य को सफल अनुरोध से परिणाम प्राप्त होगा
- अगर अनुरोध सफल नहीं है तो नई सदस्यताएं एक नया फ़ेचर ट्रिगर करेगा ???? मल्टीकास्टेड
त्रुटि होने पर अपना संकेत दोबारा बनाएं
<कोड> - (RACSignal *) createSignal {वापसी [RACSignal createSignal: ^ RACDisposable * (आईडी के & lt; RACSubscriber & gt; ग्राहक) {[[सेवा getInstance] getProducts: ^ (NSArray * उत्पादों) {[ग्राहक sendNext: उत्पादों]; [ग्राहक भेजेंसंपूर्ण]; } त्रुटि: ^ (एनएसईआरआर * त्रुटि) {[ग्राहक भेजना त्रुटि: त्रुटि]; आत्मसम्मान = [[[स्वयं बनाना सिग्नल] फिर से खेलना]; }]; }]; }
Comments
Post a Comment