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

कुशल त्रुटि प्रबंधन के लिए प्रॉमिस रिट्री डिज़ाइन पैटर्न को कैसे कार्यान्वित करें?

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

How to Implement Promise Retry Design Patterns for Efficient Error Handling?

वादा पुनः प्रयास डिज़ाइन पैटर्न: एक मेमोरी-कुशल दृष्टिकोण

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

1। वादा हल होने तक पुनः प्रयास करें

यह पैटर्न वादा हल होने तक पुनः प्रयास करता रहता है। यह अधिकतम पुनर्प्रयास संख्या और प्रयासों के बीच विलंब निर्दिष्ट करता है।

Promise.retry = function(fn, times, delay) {
  return new Promise(function(resolve, reject) {
    var error;
    var attempt = function() {
      if (times == 0) {
        reject(error);
      } else {
        fn().then(resolve)
          .catch(function(e){
            times--;
            error = e;
            setTimeout(function(){attempt()}, delay);
          });
      }
    };
    attempt();
  });
};

2. परिणाम पर शर्त पूरी होने तक पुनः प्रयास करें

यह पैटर्न तब तक पुनः प्रयास करता है जब तक कि वादे के परिणाम पर एक निर्दिष्ट शर्त पूरी नहीं हो जाती। इसमें अधिकतम पुनर्प्रयास संख्या और प्रयासों के बीच विलंब भी शामिल है।

work.publish()
    .then(function(result){
        return new Promise(function(resolve, reject){
            var intervalId = setInterval(function(){
                work.requestStatus(result).then(function(result2){
                    switch(result2.status) {
                        case "progress": break; //do nothing
                        case "success": clearInterval(intervalId); resolve(result2); break;
                        case "failure": clearInterval(intervalId); reject(result2); break;
                    }
                }).catch(function(error){clearInterval(intervalId); reject(error)});
            }, 1000);
        });
    })
    .then(function(){console.log('done')})
    .catch(console.error);

3. मेमोरी-कुशल गतिशील पुनर्प्रयास

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

var max = 5;
var p = Promise.reject();

for(var i=0; i

एक .catch() श्रृंखला का निर्माण करके, यह पैटर्न संक्षिप्त पुनः प्रयास कार्यान्वयन की अनुमति देता है, विशेष रूप से कम अधिकतम पुनर्प्रयास गणना या सिंक्रोनस परीक्षणों वाले परिदृश्यों में।

इनमें से प्रत्येक पैटर्न प्रॉमिस ऑपरेशंस को पुनः प्रयास करने के लिए एक लचीला और कुशल समाधान प्रदान करता है। आपके एप्लिकेशन की आवश्यकताओं के आधार पर, आप वह पैटर्न चुन सकते हैं जो आपकी आवश्यकताओं के लिए सबसे उपयुक्त हो।

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729587326 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3