टाइपस्क्रिप्ट में प्रोमिस क्लास

टाइपस्क्रिप्ट में प्रोमिस क्लास

यह लेख टाइपस्क्रिप्ट में प्रोमिस क्लास को समझाता है।

YouTube Video

प्रोमिस

टाइपस्क्रिप्ट में Promise क्लास मौलिक रूप से जावास्क्रिप्ट में Promise के समान है। Promise एक इन-बिल्ट क्लास है जो असिंक्रोनस ऑपरेशन्स को संभालता है और किसी असिंक्रोनस ऑपरेशन के पूरे होने पर उसका परिणाम दर्शाता है। यहां, हम प्रोमिस और संबंधित अवधारणाओं के मूल उपयोग को समझाते हैं।

मूल उपयोग

प्रोमिस बनाना:

Promise ऑब्जेक्ट का उपयोग असिंक्रोनस ऑपरेशन्स को रैप करने के लिए किया जाता है। Promise को new Promise(executor) से बनाया जाता है, और यह इसके अंदर असिंक्रोनस ऑपरेशन्स को निष्पादित करता है। ‘executor’ दो फंक्शंस, ‘resolve’ और ‘reject’, को आर्ग्युमेंट्स के रूप में लेता है।

1const myPromise = new Promise<number>((resolve, reject) => {
2    // Perform asynchronous operations
3    const success = true; // This is just an example
4    if (success) {
5        resolve(42); // In case of success
6    } else {
7        reject('Failed'); // In case of failure
8    }
9});

प्रोमिस का उपयोग करना:

बने हुए Promise को then() और catch() का उपयोग करके प्रोसेस किया जाता है।

1myPromise.then((value) => {
2    console.log(`Success: ${value}`); // Process the value passed with resolve
3}).catch((error) => {
4    console.error(`Error: ${error}`); // Handle the error passed with reject
5});

finally() मेथड

 1const myPromise = new Promise<number>((resolve, reject) => {
 2    // Perform asynchronous operations
 3    const success = false; // This is just an example
 4    if (success) {
 5        resolve(42); // In case of success
 6    } else {
 7        reject('Failed'); // In case of failure
 8    }
 9});
10
11myPromise.then((value) => {
12    console.log(`Success: ${value}`); // Process the value passed with resolve
13}).catch((error) => {
14    console.error(`Error: ${error}`); // Handle the error passed with reject
15}).finally(() => {
16    console.log('The operation has completed');
17});
  • finally() मेथड उस कोड को परिभाषित करता है जो हमेशा चलेगा, चाहे Promise पूरी हो या अस्वीकार हो।

प्रोमिस चेनिंग:

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

 1const myPromise = new Promise<number>((resolve, reject) => {
 2    // Perform asynchronous operations
 3    const success = true; // This is just an example
 4    if (success) {
 5        resolve(42); // In case of success
 6    } else {
 7        reject('Failed'); // In case of failure
 8    }
 9});
10
11myPromise
12    .then((value) => {
13        console.log(`Success: ${value}`);
14        return value + 1; // Pass the value to the next then
15    })
16    .then((newValue) => {
17        console.log(`New value: ${newValue}`);
18    })
19    .catch((error) => {
20        console.error(`Error: ${error}`);
21    });

async/await:

टाइपस्क्रिप्ट में, आप async/await का उपयोग करके प्रोमिस को अधिक सीधे तरीके से संभाल सकते हैं। async फ़ंक्शन के अंदर, आप प्रोमिस के परिणाम का इंतजार करने के लिए await कीवर्ड का उपयोग कर सकते हैं।

 1const myPromise = new Promise<number>((resolve, reject) => {
 2    // Perform asynchronous operations
 3    const success = true; // This is just an example
 4    if (success) {
 5        resolve(42); // In case of success
 6    } else {
 7        reject('Failed'); // In case of failure
 8    }
 9});
10
11async function asyncFunction() {
12    try {
13        const value = await myPromise;
14        console.log(`Success: ${value}`);
15    } catch (error) {
16        console.error(`Error: ${error}`);
17    }
18}
19
20asyncFunction();

प्रोमिस मेथड्स

Promise.all()

Promise.all कई Promises को एक साथ चलाता है और तब तक इंतजार करता है जब तक वे सभी पूरी नहीं हो जातीं।

 1const promise1 = Promise.resolve(1);
 2const promise2 = Promise.resolve(2);
 3const promise3 = Promise.resolve(3);
 4
 5Promise.all([promise1, promise2, promise3])
 6    .then((results) => {
 7        console.log(results);  // [1, 2, 3]
 8    })
 9    .catch((error) => {
10        console.error('Error :', error);
11    });
  • then() केवल तब बुलाया जाता है जब सभी Promises पूरी हो जाती हैं। यदि एक भी Promise फेल हो जाता है तो catch() को बुलाया जाता है।

Promise.race()

Promise.race कई Promises में से जो सबसे पहले पूरा होता है, उसका परिणाम लौटाता है।

1const promise1 = new Promise((resolve) => setTimeout(resolve, 100, 'First'));
2const promise2 = new Promise((resolve) => setTimeout(resolve, 500, 'Second'));
3
4Promise.race([promise1, promise2]).then((result) => {
5    console.log(result);  // "First"
6});
  • इस उदाहरण की तरह, जो पहला Promise पूरा होता है, उसका परिणाम लौटाया जाता है।

Promise.allSettled()

Promise.allSettled सभी Promises के समाप्त होने का इंतजार करता है और सभी परिणामों का एक एरे लौटाता है, जिसमें पूरी और अस्वीकार दोनों शामिल हैं।

 1const promise1 = Promise.resolve(1);
 2const promise2 = Promise.reject("Failed");
 3const promise3 = Promise.resolve(3);
 4
 5Promise.allSettled([promise1, promise2, promise3])
 6    .then((results) => {
 7        results.forEach(result => console.log(result));
 8        // [
 9        //   { status: 'fulfilled', value: 1 },
10        //   { status: 'rejected', reason: 'Failed' },
11        //   { status: 'fulfilled', value: 3 }
12        // ]
13    });
  • सभी Promises के समाप्त (पूरी या अस्वीकार) हो जाने पर then() को एक बार बुलाया जाता है। हर परिणाम में एक status प्रॉपर्टी होती है ('fulfilled' या 'rejected')। असफलता अन्य कार्यों को प्रभावित नहीं करती।

Promise.any()

Promise.any तब तक इंतजार करता है जब तक कि पहला Promise पूरा नहीं हो जाता और उसे लौटाता है।

 1const promise1 = new Promise((resolve) => setTimeout(() => resolve("A ok"), 300));
 2const promise2 = new Promise((_, reject) => setTimeout(() => reject("B fail"), 100));
 3const promise3 = new Promise((resolve) => setTimeout(() => resolve("C ok"), 200));
 4
 5Promise.any([promise1, promise2, promise3])
 6    .then(value => {
 7        // Logs the first fulfilled value ("C ok")
 8        console.log("first fulfilled:", value);
 9    })
10    .catch(err => {
11        console.log("should not reach here in this example:", err);
12    });
  • यह कई Promises में से पहला पूरा हुआ मान लौटाता है।

सारांश

टाइपस्क्रिप्ट का उपयोग करके, आप प्रोमिस के प्रकारों को उचित रूप से निर्दिष्ट कर सकते हैं, जिससे आप अधिक टाइप-सुरक्षित प्रोग्राम लिख सकते हैं। यह प्रोमिस द्वारा लौटाए गए मान के प्रकार को पहले से निर्दिष्ट करके विकास के दौरान जल्दी त्रुटियों को पकड़ने में मदद करता है।

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video