संक्षेप में: प्रत्येक .subscribe
से पहले .catch
डाले बिना स्ट्रीम में त्रुटि के बाद सुनना कैसे आगे बढ़ें?आरएक्सजेएस त्रुटि पर सदस्यता क्यों लेता है?
आपको और अधिक जानकारी की जरूरत है वे यहां हैं:
चलें मान मैं वर्तमान उपयोगकर्ता या नल के अधीन रहते हुए की है। मुझे कभी-कभी एपीआई से डेटा मिलता है और विषय को भेजता है। यह तदनुसार दृश्य को अद्यतन करता है। लेकिन किसी बिंदु पर मेरे सर्वर पर त्रुटि होती है और मैं चाहता हूं कि मेरा एप्लिकेशन पहले के रूप में काम करना जारी रखे लेकिन त्रुटि के बारे में कुछ स्थानों को सूचित करे और मेरे विषय को सुनें।
शुरू में मैंने सोचा था कि यह केवल .catch
कॉलबैक और ग्राहकी लेने पर error
संचालकों को गति प्रदान करने और सभी सफलता संचालकों और जंजीरों को छोड़ देगा, तो मैं सिर्फ userSubject.error(...)
है। और यदि मैं userSubject.next(...)
पर कॉल करता हूं तो मेरी सभी श्रृंखलाएं और ग्राहक
पर काम करेंगे, लेकिन अनजाने में यह मामला नहीं है। पहले uncaught .error
के बाद यह स्ट्रीम से ग्राहकों की सदस्यता रद्द करता है और वे अब और अधिक काम नहीं करते हैं।
तो मेरा प्रश्न: क्यों ??? और यदि मैं null
सामान्य रूप से मानना चाहता हूं लेकिन कुछ स्थानों पर केवल त्रुटियों को संभालना चाहता हूं तो इसके बजाय क्या करना है?
यहाँ RxJs स्रोत कोड के लिए लिंक है, जहां त्रुटि पर सब्सक्राइबर सदस्यता समाप्त करने पर https://github.com/ReactiveX/rxjs/blob/master/src/Subscriber.ts#L140
धन्यवाद समझा! – mgrinko