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