Chaining promises and error handling In Hindi
जावास्क्रिप्ट प्रोग्रामिंग में प्रॉमिस चेनिंग प्रोग्रामर को मल्टीप्ल सीक्वेंस में कई एसिंक्रोनस प्रोग्रामिंग ऑपरेशन को एक्सेक्यूट करने की परमिशन प्रोवाइड करता है, जहा इस प्रोसेस में एरर मैनेजमेंट को कस्टमाइज या मैनेज कर सकते है। तो चलिए जावास्क्रिप्ट में जाने कि प्रॉमिस प्रोसेस को कैसे प्रोग्राम में चेन करे, और प्रोग्राम में होने वाली एरर को एफ्फेक्टिवेली मैनेज और कण्ट्रोल किया जाए. जिससे मौजूदा प्रोग्राम में यह तय किया जाए कि सभी प्रोग्राम एरर को प्रॉमिस चेन में प्रॉपर्ली कैच किया जाए।

Chaining Promises in JavaScript.
जब किसी जावास्क्रिप्ट प्रोग्राम में प्रोग्रामर को एक साथ कई एसिंक्रोनस टास्क करने होते हैं, जिन्हें सीक्वेंस में एक्सेक्यूट करने की जरूरत हो, तो प्रोग्रामर कई .then() कॉल मेथड को चेन कर डिस्प्ले सकते हैं। जहा प्रत्येक .then() फंक्शन मेथड प्रीवियस प्रॉमिस का रिजल्ट इनपुट करता है, और आउटपुट के रूप में एक वैल्यू या कोई अन्य प्रॉमिस आउटपुट को रिटर्न करता है।
Basic JavaScript Promise Chaining.
तो चलिए जावास्क्रिप्ट में मल्टीप्ल प्रॉमिस को चेन करने के प्रोसेस को जाने।
const process1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(“Process 1 is done”);
}, 2000);
});
const process2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(“Process 2 is done”);
}, 3000);
});
process1
.then(output => {
console.log(output); // it displays the Logs “Process 1 is done”
return process2; // it will Return another promise process2
})
.then(output => {
console.log(output); // it Logs “Process 2 is done”
})
.catch(error => {
console.log(“Display Error -“, error); // here it Catches any error in the process1 and process2 chain process
});
Explanation of Promise Chaining.
यहाँ इस प्रोग्राम में process1 2 सेकंड के बाद एक्सेक्यूट होता है, और आउटपुट से पहले .then() फंक्शन में लॉग होता है।
यहाँ process1 का रिजल्ट को लॉग किया जाता है, और फिर process2 वैल्यू आउटपुट को रिटर्न करता है, जो मौजूदा प्रोग्राम में एक नया प्रॉमिस है।
जब process2 3 सेकंड के बाद एक्सेक्यूट होता है, तो दूसरा .then() रिजल्ट लॉग करता है।
इस प्रोग्राम में यदि किसी प्रॉमिस के एक्सेक्यूशन प्रोसेस के दौरान कोई एरर जनरेट होती है, तो .catch() फंक्शन मेथड उसे कैच करता है।
Returning a promise from .then() in JavaScript.
जावास्क्रिप्ट प्रोग्राम में जब प्रोग्रामर .then() फंक्शन कॉलबैक मेथड से एक प्रॉमिस वैल्यू को रिटर्न करता हैं, तो नेक्स्ट .then() फंक्शन में फॉरवर्ड होने से पहले उस रिटर्न किए गए प्रॉमिस के सॉल्व होने या रिजेक्ट होने का वेट करेगा।
Example of returning a promise in JavaScript.
function process3() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(“Process 3 is done”);
}, 2000);
});
}
process1
.then(output => {
console.log(output); // it Logs the “process1 done”
return process3(); // it Return another promise process3
})
.then(output => {
console.log(output); // it Logs the “Process 3 is done”
})
.catch(error => {
console.log(“Display Error -“, error); // it Catch any error that occurs in chain process
});
इस प्रोग्राम में, process3() फंक्शन .then() के अंदर रिटर्न किया जाता है, इसका मतलब है कि दूसरा .then() फंक्शन process3() प्रोसेस के सॉल्व होने तक वेट करता है।
Managing errors in promise chain in JavaScript.
जावास्क्रिप्ट प्रोग्रामिंग में .catch() फंक्शन के साथ प्रॉमिस चेन में एरर मैनेजमेंट इजी और इफेक्टिव हो जाता है। जहा यदि चेन प्रोसेस में कोई भी प्रॉमिस मेथड को रिजेक्ट किया जाता है, तो चेन प्रोसेस के अंत में लोकेटेड .catch() फंक्शन में एरर मैनेजमेंट करेगा। इस प्रोसेस से प्रोग्रामर को प्रत्येक .then() फंक्शन कॉलबैक में अलग-अलग प्रोग्राम एरर मैनेजमेंट करने की जरूरत नहीं होगी।
Basic error handling with .catch() in JavaScript.
const process4 = new Promise((resolve, reject) => {
setTimeout(() => {
reject(“process4 is done”);
}, 3000);
});
task1
.then(output => {
console.log(output); // it Logs the “process1 is done”
return process4; // it Return a promise that fails in chain method
})
.then(output => {
console.log(output); // here This don’t be executed because process4 fails in this process
})
.catch(error => {
console.log(“it Caught the error”, error); // it display the Logs the error when condition false
});
Explanation of errors in promise chain.
यहाँ इस प्रोग्राम में process4 3 सेकंड के बाद रिजेक्ट कर दिया गया है।
क्योकि यहाँ process4 प्रोसेस फेल्ड हो गया है, इसलिए .catch() फंक्शन प्रोग्राम एरर को कैच कर लेता है और “it Caught the error” मैसेज को लॉग करता है।
process4 में रिजेक्शन के कारण दूसरा. then() फंक्शन को इगनोर कर दिया जाता है।
Catching errors in any part of the chain in JavaScript.
जावास्क्रिप्ट प्रोग्रामिंग में प्रॉमिस सीरीज के अंत में .catch() फंक्शन मेथड में किसी भी प्रीवियस .then() फंक्शन ब्लॉक में जनरेट होने वाली प्रोग्राम एरर को कैच करता है। यह प्रोसेस मौजूदा प्रोग्राम में सेण्टर एरर मेनेजमेंट के लिए इम्पोर्टेन्ट कांसेप्ट है, जिससे प्रोग्रामर प्रत्येक .then() फंक्शन में .catch() फंक्शन में ऐड होने से स्टॉप किया जा सके।
Example of catching errors globally in JavaScript.
process1
.then(output => {
console.log(output); // it used to Logs “process 1 is done”
throw new Error(“it display error during process 2”);
})
.then(output => {
console.log(output); // here This don’t to be executed with the error
})
.catch(error => {
console.log(“it Caught error”, error.message); // it Catches the error part from any .then() function
});
Handling Multiple Promises with Promise.all() in JavaScript.
यदि किसी जावास्क्रिप्ट प्रोग्राम में प्रोग्रामर कई प्रॉमिसेस कंडीशन को डील कर रहा हैं, जो पैरेलल आर्डर में एक्सेक्यूट हो सकते हैं, और प्रोग्रामर उन सभी प्रॉमिसेस के कम्पलीट होने का वेट करना चाहता हैं, तो प्रोग्रामर मौजूदा प्रोग्राम में Promise.all() फंक्शन को अप्लाई कर सकते हैं। यह प्रोसेस प्रोग्रामर को कई असिन्क्रोनस टास्क को एक साथ एक्सेक्यूट करने और मल्टीप्ल प्रोग्राम टास्क के कम्पलीट होने पर रिजल्ट रिसीव करने की परमिशन प्रोवाइड करता है।
Example of Promise.all() function.
const process5 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(“process 5 is done”);
}, 2000);
});
const process6 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(“process 6 is done”);
}, 3000);
});
Promise.all([process5, process6])
.then(output => {
console.log(output); // here it display the Logs [“process 5 is done”, “process 6 is done”]
})
.catch(error => {
console.log(“it display Error”, error); // here If any of the promises condition fail, it will log the error on screen
});
Explanation of Promise.all() function.
यहाँ मौजूदा प्रोग्राम में Promise.all() फंक्शन सभी प्रोग्राम प्रॉमिसेस के कम्पलीट होने का वेट करता है। यदि यहाँ सभी प्रॉमिसेस सक्सेस्स्फुल्ली कम्पलीट हो जाते हैं, तो .then() फंक्शन ब्लॉक रिजल्ट की एक ऐरे डिस्प्ले के साथ एक्सेक्यूट होता है।
यहाँ यदि ऐरे में कोई भी प्रॉमिस रिजेक्ट कर दिया जाता है, तो प्रोग्राम में .catch() फंक्शन ब्लॉक आटोमेटिक ट्रिगर हो जाता है।
यहाँ यदि प्रोग्राम में ऐरे में कोई भी प्रॉमिस फ़ैल हो जाता है, तो .catch() फंक्शन ट्रिगर हो जाता है।
Handling multiple promises with Promise.race() in JavaScript.
जावास्क्रिप्ट प्रोग्राम में Promise.all() फंक्शन सभी प्रॉमिसेस के कम्पलीट होने का वेट करता है, वही Promise.race() फंक्शन प्रोग्राम में पहले प्रॉमिस के कम्पलीट होने या रिजेक्ट होने पर इमीडियेट रिटर्न हो जाएगा। यदि प्रोग्रामर को प्रीवियस कम्पलीट किए गए टास्क की आवश्यकता है, तो यह मेथड इम्पोर्टेन्ट हो सकता है।
Example of Promise.race() function in JavaScript.
const proccess7 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(“process 7 is done”);
}, 2000);
});
const proccess8 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(“process 8 is done”);
}, 1000);
});
Promise.race([proccess7, proccess8])
.then(output => {
console.log(output); // here it Logs message on screen “process 8 is done” because it done it first
})
.catch(error => {
console.log(“it catch Error”, error); // here If any of the promises rejects it run catch
});
Explanation of Promise.race().
यहाँ इस प्रोग्राम में Promise.race() फंक्शन सॉल्व होने जाने वाले फर्स्ट प्रॉमिस यहाँ इस कंडीशन में, proccess8 के रिजल्ट के साथ सॉल्व होता है।
भले ही proccess7, proccess8 के बाद सॉल्व हो जाए, रेस, proccess8 के रिजल्ट के साथ सॉल्व हो जाते है।
Summary of Chaining Promises in JavaScript.
- Chaining Promises in JavaScript – जावास्क्रिप्ट प्रोग्रामर .then() फंक्शन को अप्लाई करके कई प्रॉमिसेस को सीरीज में सॉल्व कर सकते हैं। जहा प्रत्येक .then() फंक्शन एक नया प्रॉमिस को रिटर्न करता है, जिससे आप असिंक्रोनोस टास्क का एक आर्डर क्रिएट कर सकते हैं।
- Promises error management – प्रॉमिस में सीरीज के किसी भी भाग में एरर को कैच करने के लिए .catch() फंक्शन का उपयोग करते है, जिससे प्रोग्राम प्रॉमिस में केंद्रीकृत एरर मैनेजमेंट क्रिएट होता है।
- Promise.all() method – इस फंक्शन को तब अप्लाई किया जाता है, जब प्रोग्रामर आगे बढ़ने से पहले कई प्रोग्राम प्रॉमिसेस के सॉल्व होने का वेट करना चाहते हैं।
- Promise.race() method – इस फंक्शन को तब अप्लाई किया जाता है, जब प्रोग्रामर केवल सॉल्व या रिजेक्ट किए जाने वाले पहले प्रॉमिसेस के बारे में ही सोचते हैं।