मैं अभी भी वादों के लिए काफी नया हूं और वर्तमान में ब्लूबर्ड का उपयोग कर रहा हूं, हालांकि मेरे पास एक परिदृश्य है जहां मुझे यकीन नहीं है कि इसके साथ सबसे अच्छा कैसे व्यवहार किया जाए।
तो उदाहरण के लिए मेरे पास एक एक्सप्रेस ऐप के भीतर एक वादा श्रृंखला है जैसे:
repository.Query(getAccountByIdQuery)
.catch(function(error){
res.status(404).send({ error: "No account found with this Id" });
})
.then(convertDocumentToModel)
.then(verifyOldPassword)
.catch(function(error) {
res.status(406).send({ OldPassword: error });
})
.then(changePassword)
.then(function(){
res.status(200).send();
})
.catch(function(error){
console.log(error);
res.status(500).send({ error: "Unable to change password" });
});
इसलिए मैं जो व्यवहार कर रहा हूं, वह है:
- आईडी द्वारा खाता प्राप्त करने के लिए जाता है
- यदि इस बिंदु पर अस्वीकृति है, तो बम विस्फोट करें और एक त्रुटि लौटाएं
- यदि कोई त्रुटि नहीं है, तो दस्तावेज़ को मॉडल में लौटाएं
- डेटाबेस दस्तावेज़ के साथ पासवर्ड को सत्यापित करें
- यदि पासवर्ड मेल नहीं खाते हैं तो बम विस्फोट करें और एक अलग त्रुटि लौटाएं
- यदि कोई त्रुटि नहीं है तो पासवर्ड बदलें
- फिर सफलता लौटाते हैं
- अगर कुछ और गलत हुआ, तो 500 वापस करो
इसलिए वर्तमान में कैच को रोकना प्रतीत नहीं होता है, और यह समझ में आता है, इसलिए मैं सोच रहा हूं कि क्या मेरे लिए कोई रास्ता है जो त्रुटियों के आधार पर किसी निश्चित बिंदु पर रुकने के लिए चेन को मजबूर कर सकता है, या यदि कोई बेहतर तरीका है के रूप में वहाँ के रूप में शाखाओं में बंटी व्यवहार के कुछ फार्म पाने के लिए इस संरचना के लिए if X do Y else Z
।
कोई भी मदद बहुत अच्छी रहेगी।