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

आप एसिंक्रोनस कॉलबैक में उन त्रुटियों को कैसे संभाल सकते हैं जो वादे के दायरे में नहीं हैं?

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

How Can You Handle Errors in Asynchronous Callbacks That Are Not Within a Promise\'s Scope?

प्रॉमिस चेनिंग के साथ एसिंक्रोनस एरर हैंडलिंग

एसिंक्रोनस कोड के साथ काम करते समय, यह विचार करना महत्वपूर्ण है कि त्रुटियों को प्रभावी ढंग से कैसे प्रबंधित किया जाए। ध्यान में न आए अपवाद आपके एप्लिकेशन को क्रैश कर सकते हैं, इसलिए एक रणनीति बनाना महत्वपूर्ण है।

वर्णित परिदृश्य में, सेटटाइमआउट के साथ एक प्रॉमिस बनाया जाता है जो एक त्रुटि उत्पन्न करता है। ब्लूबर्ड प्रॉमिस का कैच हैंडलर इस त्रुटि को नहीं पकड़ पाएगा क्योंकि यह एक एसिंक्रोनस कॉलबैक के भीतर होता है। उनके स्वयं के कॉलबैक फ़ंक्शन। इस प्रकार की त्रुटि को संभालने के लिए, आप यह कर सकते हैं:

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 कॉलबैक का उदाहरण हैंडलिंग
  1. Node.js या ब्राउज़र में एक दुष्ट async कॉलबैक को संभालने के लिए, आप निम्नलिखित दृष्टिकोण का उपयोग कर सकते हैं:
  2. फ़ंक्शन getPromise() { नया वादा लौटाएं (फ़ंक्शन (किया गया, अस्वीकार करें) { सेटटाइमआउट(फ़ंक्शन() { कोशिश { // आपका दुष्ट एसिंक कॉलबैक यहां कंसोल.लॉग("hihihihi"); } पकड़ो (ई) { अस्वीकार(ई); } }, 500); }); }कॉलबैक के भीतर किसी भी अपवाद को मैन्युअल रूप से संभालकर, यह दृष्टिकोण सुनिश्चित करता है कि वे आपके एप्लिकेशन को क्रैश नहीं करेंगे।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3