मेरे पास @ngrx प्रभाव से संबंधित एक बहुत ही बुनियादी सवाल है: प्रभाव के निष्पादन के दौरान होने वाली त्रुटि को अनदेखा कैसे करें जिससे कि यह भविष्य के प्रभाव निष्पादन को प्रभावित न करे?ngrx प्रभाव त्रुटि हैंडलिंग
मेरी स्थिति निम्नानुसार है: मेरे पास एक क्रिया (LOGIN) है और उस क्रिया को सुनने का प्रभाव है। अगर इस प्रभाव के अंदर कोई त्रुटि होती है, तो मैं इसे अनदेखा करना चाहता हूं। जब इस त्रुटि के बाद दूसरी बार LOGIN प्रेषित किया जाता है, तो प्रभाव दूसरी बार निष्पादित किया जाना चाहिए। यह था करने के लिए
मेरा पहला प्रयास:
@Effect()
login$ = this.actions$
.ofType('LOGIN')
.flatMap(async() => {
console.debug('LOGIN');
// throw an error
let x = [];x[0]();
})
.catch(err => {
console.error('Error at login', err);
return Observable.empty();
});
भेजने प्रवेश पहली बार फेंकता है और अपेक्षा के अनुरूप त्रुटि पकड़ता,। हालांकि, अगर मैं बाद में दूसरी बार लॉग इन भेजता हूं, तो कुछ भी नहीं होता है; प्रभाव निष्पादित नहीं किया गया है।
इसलिए मैं निम्नलिखित की कोशिश की:
.catch(err => {
return this.login$;
});
, लेकिन यह एक अंतहीन लूप में परिणाम है ... क्या आप जानते हैं कैसे प्रभाव निष्पादन बाद में रोकने के बिना त्रुटि को पकड़ने के लिए?
मैं ngrx पता नहीं है लेकिन आप शायद सिर्फ '.retry()' धारा के बजाय पकड़ने पर कर सकते हैं। – Gluck