पर पकड़ें और ले जाएं मैं जिस तरह से अपेक्षित तरीके से आरएक्स के साथ त्रुटियों को संभालने के लिए संघर्ष कर रहा हूं।आरएक्सजेएस -
जब मेरे पास एक पर्यवेक्षक (उदाहरण के लिए, एक क्लिक स्ट्रीम से) होता है और एक अपवाद होता है तो मैं इसे पकड़ना चाहता हूं लेकिन आगे बढ़ना चाहता हूं। मैंने जिन सभी समाधानों का प्रयास किया है, वे त्रुटि को पकड़ने के बाद अवलोकन को समाप्त करते हैं। क्या पकड़ने और आगे बढ़ने का कोई तरीका है?
उदाहरण के तौर पर नीचे दिया गया अवलोकन "1", फिर "त्रुटि", लेकिन कभी "3" उत्सर्जित नहीं करेगा।
var range = Rx.Observable.range(1,3)
.map(function(i){
if(i === 2){
throw "Error";
} else {
return i;
}
})
.catch(function(e){
return Rx.Observable.return(e)
});
range.subscribe(function(i){
console.log(i)
});
स्रोत अनुक्रम के साथ आगे बढ़ने का एकमात्र तरीका फेंकना नहीं है। क्या आप हमें बता सकते हैं कि आपका असली उपयोग मामला क्या है? –
अवलोकन योग्य अनुबंध यह है कि इसे पर्यवेक्षक को पैटर्न को छोड़ना चाहिए: (ऑननेक्स्ट) * (ऑनकंपलेट | ऑनरर)। तो जिस क्षण एक अनुक्रम ऑनरर को समाप्त करता है, वह समाप्त होता है। –
@ ओलिवर वेचहोल्ड असली मामला एक क्लिक इवेंट देखने योग्य है, जो एक http अनुरोध में 'flatMap()' देखने योग्य है। यदि/जब http अनुरोध विफल रहता है, तो क्लिक करने योग्य क्लिक अब उत्सर्जित नहीं होता है। – MaxWillmo