"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आप ब्लूबर्ड वादों के साथ एसिंक्रोनस कॉलबैक में अनचाहे अपवादों को कैसे संभालते हैं?

आप ब्लूबर्ड वादों के साथ एसिंक्रोनस कॉलबैक में अनचाहे अपवादों को कैसे संभालते हैं?

2024-11-21 को प्रकाशित
ब्राउज़ करें:806

How do you handle unhandled exceptions in asynchronous callbacks with Bluebird promises?

ब्लूबर्ड वादों के साथ अतुल्यकालिक अपवाद हैंडलिंग

प्रश्न: ब्लूबर्ड वादों के साथ अतुल्यकालिक कॉलबैक में अनचाहे अपवादों को कैसे संभालें?

ब्लूबर्ड वादे स्वाभाविक रूप से एसिंक्रोनस कॉलबैक से उत्पन्न अपवादों को नहीं पकड़ते हैं, डोमेन के विपरीत।

ए: अपवादों को संभालने के लिए प्रॉमिस कंस्ट्रक्टर्स या फिर() क्लोजर का उपयोग करें

एसिंक कॉलबैक में अपवादों को पकड़ने के लिए, कॉलबैक को प्रॉमिस कंस्ट्रक्टर में लपेटें या फिर () समापन:

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