ब्लूबर्ड वादों के साथ अतुल्यकालिक अपवाद हैंडलिंग
प्रश्न: ब्लूबर्ड वादों के साथ अतुल्यकालिक कॉलबैक में अनचाहे अपवादों को कैसे संभालें?
ब्लूबर्ड वादे स्वाभाविक रूप से एसिंक्रोनस कॉलबैक से उत्पन्न अपवादों को नहीं पकड़ते हैं, डोमेन के विपरीत।
ए: अपवादों को संभालने के लिए प्रॉमिस कंस्ट्रक्टर्स या फिर() क्लोजर का उपयोग करें
एसिंक कॉलबैक में अपवादों को पकड़ने के लिए, कॉलबैक को प्रॉमिस कंस्ट्रक्टर में लपेटें या फिर () समापन:
function getPromise(){
return new Promise(function(done, reject){
setTimeout(function(){
throw new Error("AJAJAJA");
}, 500);
}).then(function() {
console.log("hihihihi");
throw new Error("Oh no!");
});
}
कस्टम एसिंक कॉलबैक डालने से बचें
कभी भी कस्टम एसिंक कॉलबैक (वादा कॉलबैक के बाहर) में सीधे अपवाद न डालें। इसके बजाय, आसपास के वादे को अस्वीकार करें:
function getPromise(){
return new Promise(function(done, reject){
setTimeout(done, 500);
}).then(function() {
console.log("hihihihi");
reject(new Error("Oh no!"));
});
}
उदाहरण
एक प्रॉमिस कंस्ट्रक्टर का उपयोग करना:
var p = getPromise();
p.then(function(){
console.log("Yay");
}).error(function(e){
console.log("Rejected",e);
}).catch(Error, function(e){
console.log("Error",e);
}).catch(function(e){
console.log("Unknown", e);
});
आउटपुट:
Error [Error: Oh no!]
यह दृष्टिकोण सुनिश्चित करता है कि अपवादों को पकड़ा जाए और उचित तरीके से संभाला जाए, जिससे एप्लिकेशन को क्रैश होने से रोका जा सके।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3