Promises with examples in hindi

 

Promises in JavaScript: एक परिचय (हिंदी में)

Promise JavaScript का एक महत्वपूर्ण कांसेप्ट है, जो असिंक्रोनस (asynchronous) ऑपरेशन्स को बेहतर तरीके से हैंडल करने के लिए उपयोग किया जाता है। Promises एक ऐसी ऑब्जेक्ट होती है जो किसी भविष्य में होने वाली किसी असिंक्रोनस ऑपरेशन के परिणाम को रिप्रेजेंट करती है। यह परिणाम success (fulfilled) या failure (rejected) हो सकता है।

Promise के तीन मुख्य states:

  1. Pending: जब promise अभी पूरा नहीं हुआ होता है (यानी न तो फुलफिल्ड और न ही रिजेक्टेड)।
  2. Fulfilled: जब promise successfully पूरा हो जाता है और इसमें कोई वैल्यू होती है।
  3. Rejected: जब promise असफल हो जाता है और कोई error/वजह होती है।

Promise का सिंटैक्स

js
let promise = new Promise((resolve, reject) => { // असिंक्रोनस ऑपरेशन let success = true; if (success) { resolve("ऑपरेशन सफल!"); } else { reject("ऑपरेशन असफल!"); } });

यहां:

  • resolve() का मतलब है कि ऑपरेशन सफल रहा और हमें रिजल्ट मिला।
  • reject() का मतलब है कि ऑपरेशन में कोई समस्या आई और हमें एरर मिला।

Promises को हैंडल करने के तरीके

  1. .then(): जब promise पूरा हो जाता है, तो fulfilled state में आता है और इसके परिणाम को हैंडल किया जा सकता है।
  2. .catch(): जब promise में कोई error होती है, तो rejected state में आता है और एरर को हैंडल किया जा सकता है।
  3. .finally(): यह हमेशा execute होता है चाहे promise fulfilled हो या rejected।

उदाहरण: .then(), .catch(), और .finally() का उपयोग

js
let promise = new Promise((resolve, reject) => { let success = true; if (success) { resolve("ऑपरेशन सफल!"); } else { reject("कुछ गलत हो गया!"); } }); promise .then(result => { console.log(result); // "ऑपरेशन सफल!" }) .catch(error => { console.log(error); // "कुछ गलत हो गया!" }) .finally(() => { console.log("ऑपरेशन समाप्त हो गया (चाहे सफल हो या असफल)"); });

Promises के प्रकार

JavaScript में Promises के कई प्रकार हैं, जिनका उपयोग हम अलग-अलग स्थितियों में करते हैं।

1. Simple Promise Example

js
const myPromise = new Promise((resolve, reject) => { let success = true; // मान लीजिए यह ऑपरेशन सफल है if (success) { resolve("डेटा सफलतापूर्वक प्राप्त हुआ!"); } else { reject("डेटा प्राप्त करने में समस्या आई।"); } }); myPromise .then(response => { console.log(response); // "डेटा सफलतापूर्वक प्राप्त हुआ!" }) .catch(error => { console.error(error); // यह एरर नहीं होगा क्योंकि ऑपरेशन सफल है });

2. Promise.all()

Promise.all() एक विधि है, जो कई Promises को एक साथ हैंडल करने के लिए उपयोग होती है। यह तब तक नहीं रिटर्न होती जब तक कि सभी Promises fulfill न हो जाएं। अगर कोई भी promise reject होता है, तो Promise.all() उसे तुरंत reject कर देती है।

उदाहरण:

js
const promise1 = new Promise((resolve, reject) => setTimeout(resolve, 1000, "पहला")); const promise2 = new Promise((resolve, reject) => setTimeout(resolve, 2000, "दूसरा")); const promise3 = new Promise((resolve, reject) => setTimeout(resolve, 3000, "तीसरा")); Promise.all([promise1, promise2, promise3]) .then(results => { console.log(results); // ["पहला", "दूसरा", "तीसरा"] }) .catch(error => { console.error(error); // अगर कोई Promise reject हो जाता है });

3. Promise.race()

Promise.race() विधि भी कई Promises का एक साथ परिणाम देती है, लेकिन यह केवल पहले resolved (या rejected) होने वाले Promise का परिणाम रिटर्न करती है।

उदाहरण:

js
const promise1 = new Promise((resolve, reject) => setTimeout(resolve, 1000, "पहला")); const promise2 = new Promise((resolve, reject) => setTimeout(resolve, 500, "दूसरा")); Promise.race([promise1, promise2]) .then(result => { console.log(result); // "दूसरा" (क्योंकि यह सबसे पहले पूरा हुआ) }) .catch(error => { console.log(error); // कभी नहीं पहुंचेगा });

4. Promise.allSettled()

Promise.allSettled() उन सभी Promises का रिजल्ट देता है, चाहे वे फुलफिल्ड हों या रिजेक्टेड। यह विधि तब रिटर्न होती है जब सभी Promises समाप्त हो जाते हैं (fulfilled या rejected)।

उदाहरण:

js
const promise1 = Promise.resolve(3); const promise2 = Promise.reject("कुछ गलत हुआ"); const promise3 = Promise.resolve(42); Promise.allSettled([promise1, promise2, promise3]) .then(results => { console.log(results); // [ // { status: "fulfilled", value: 3 }, // { status: "rejected", reason: "कुछ गलत हुआ" }, // { status: "fulfilled", value: 42 } // ] });

5. Promise.any()

Promise.any() विधि किसी भी Promise के सफल होने पर उसे रिजल्ट देता है। अगर सभी Promises असफल होते हैं, तो यह AggregateError रिटर्न करता है।

उदाहरण:

js
const promise1 = Promise.reject("त्रुटि 1"); const promise2 = Promise.reject("त्रुटि 2"); const promise3 = Promise.resolve("सफलता!"); Promise.any([promise1, promise2, promise3]) .then(result => { console.log(result); // "सफलता!" }) .catch(error => { console.log(error); // अगर सभी Promises असफल होते हैं });

Promise Chaining (Promise को चेन करना)

Promises को चेन किया जा सकता है, जिससे हम कई असिंक्रोनस ऑपरेशन को एक के बाद एक आसानी से हैंडल कर सकते हैं। .then() के जरिए हम एक से ज्यादा असिंक्रोनस ऑपरेशन को जोड़ सकते हैं।

उदाहरण:

js
const promise = new Promise((resolve, reject) => { setTimeout(() => resolve(5), 1000); // 1 सेकंड बाद 5 लौटाएगा }); promise .then(result => { console.log(result); // 5 return result * 2; // 5 * 2 = 10 }) .then(result => { console.log(result); // 10 return result + 3; // 10 + 3 = 13 }) .then(result => { console.log(result); // 13 }) .catch(error => { console.error(error); // अगर चेन में कहीं कोई एरर होती है });

Async/Await के साथ Promises

async/await सिंटैक्स Promises के साथ काम करने के लिए एक और आसान तरीका है। async फ़ंक्शन हमेशा एक Promise रिटर्न करता है, और await का उपयोग हमें किसी Promise को resolve होने तक रोकने में मदद करता है।

उदाहरण:

js
async function fetchData() { const promise = new Promise((resolve, reject) => { setTimeout(() => resolve("डेटा प्राप्त हुआ!"), 1000); }); try { const result = await promise; console.log(result); // "डेटा प्राप्त हुआ!" } catch (error) { console.error(error); // यदि कोई एरर हो तो } } fetchData();

निष्कर्ष

  • Promises JavaScript में असिंक्रोनस ऑपरेशन्स को बेहतर तरीके से हैंडल करने के लिए बहुत महत्वपूर्ण होते हैं।
  • Promise Types जैसे Promise.all(), Promise.race(), Promise.allSettled(), और Promise.any() विभिन्न उपयोग मामलों में काम आते हैं।
  • Chaining Promises और async/await के द्वारा हम आसानी से कई असिंक्रोनस ऑपरेशन्स को एक साथ हैंडल कर सकते हैं।

Promises को समझना और सही तरीके से उपयोग करना आपके JavaScript कोड को अधिक साफ, पठनीय और स्केलेबल बना सकता है।

Comments

Popular posts from this blog

PrimeNG tutorial with examples using frequently used classes

Docker and Kubernetes Tutorials and QnA

Building strong foundational knowledge in frontend development topics