TypeScript में एसिंक्रोनस प्रोग्रामिंग: एक संपूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript में एसिंक्रोनस प्रोग्रामिंग का परिचय



आधुनिक वेब डेवलपमेंट एसिंक्रोनस प्रोग्रामिंग के बिना अकल्पनीय है। चाहे वह API अनुरोध हों, फ़ाइल सिस्टम के साथ काम करना हो या टाइमर - ये सभी ऑपरेशन कोड के नॉन-ब्लॉकिंग निष्पादन की मांग करते हैं। TypeScript, JavaScript के ऊपर एक परत के रूप में, एसिंक्रोनसिटी के साथ काम करने के लिए शक्तिशाली उपकरण प्रदान करता है, सख्त टाइपिंग और बेहतर कोड पठनीयता जोड़ता है।



इस गाइड में, हम TypeScript में एसिंक्रोनस प्रोग्रामिंग के सभी पहलुओं पर विस्तार से चर्चा करेंगे: बुनियादी Promise से लेकर async/await के साथ उन्नत पैटर्न और कार्यों के समानांतर निष्पादन तक।



1. TypeScript में Promise की मूल बातें



Promise क्या है?



Promise (वादा) एक ऑब्जेक्ट है जो किसी एसिंक्रोनस ऑपरेशन के परिणाम का प्रतिनिधित्व करता है। यह तीन अवस्थाओं में से एक में हो सकता है:



  • Pending (लंबित) - प्रारंभिक अवस्था, ऑपरेशन अभी पूरा नहीं हुआ है।
  • Fulfilled (पूर्ण) - ऑपरेशन सफलतापूर्वक पूरा हो गया है।
  • Rejected (अस्वीकृत) - ऑपरेशन त्रुटि के साथ समाप्त हुआ है।


टाइपिंग के साथ Promise बनाना



TypeScript आपको Promise के रिटर्न वैल्यू को सख्ती से टाइप करने की अनुमति देता है। एक उदाहरण देखें:



// फ़ंक्शन जो डेटा प्रकार के साथ Promise लौटाता हैfunction fetchUserData(userId: number): Promise<User> {    return new Promise<User>((resolve, reject) => {        setTimeout(() => {            const user: User = {                id: userId,                name: 'इवान इवानोव',                email: 'ivan@example.com'            };                        if (userId > 0) {                resolve(user);            } else {                reject(new Error('अमान्य उपयोगकर्ता ID'));            }        }, 1000);    });}

// डेटा टाइपिंग के लिए इंटरफ़ेसinterface User { id: number; name: string; email: string;}

// Promise का उपयोगfetchUserData(1) .then((user: User) => { console.log(`उपयोगकर्ता: ${user.name}`); }) .catch((error: Error) => { console.error(`त्रुटि: ${error.message}`); });


Promise चेनिंग



एसिंक्रोनस ऑपरेशनों को क्रमिक रूप से निष्पादित करने के लिए Promise को चेन में जोड़ा जा सकता है:



function getUserPosts(userId: number): Promise<string[]> {    return new Promise((resolve) => {        setTimeout(() => resolve(['पोस्ट 1', 'पोस्ट 2', 'पोस्ट 3']), 500);    });}

function getPostComments(postTitle: string): Promise<string[]> { return new Promise((resolve) => { setTimeout(() => resolve(['टिप्पणी 1', 'टिप्पणी 2']), 300); });}

// Promise चेनfetchUserData(1) .then((user) => { console.log(`उपयोगकर्ता मिला: ${user.name}`); return getUserPosts(user.id); }) .then((posts) => { console.log(`पोस्ट मिलीं: ${posts.length}`); return getPostComments(posts[0]); }) .then((comments) => { console.log(`पहली पोस्ट पर टिप्पणियाँ: ${comments.length}`); }) .catch((error) => { console.error('एक त्रुटि हुई:', error); });


2. Async/Await - आधुनिक दृष्टिकोण



async/await सिंटैक्स



async और await कीवर्ड एसिंक्रोनस कोड को सिंक्रोनस जैसा बनाते हैं, जिससे इसकी पठनीयता में काफी सुधार होता है। async से चिह्नित फ़ंक्शन हमेशा एक Promise लौटाता है।



// रिटर्न वैल्यू टाइपिंग के साथ एसिंक्रोनस फ़ंक्शनasync function loadUserProfile(userId: number): Promise<UserProfile> {    try {        const user = await fetchUserData(userId);        const posts = await getUserPosts(userId);                return {            user,            posts,            lastLogin: new Date()                

ब्लॉग

पुस्तक अनुशंसाएँ