टाइपस्क्रिप्ट और प्रॉमिस के साथ कैसे काम करें
टाइपस्क्रिप्ट स्थिर प्रकार जोड़कर जावास्क्रिप्ट विकास को बढ़ाता है। एसिंक्रोनस कोड के साथ काम करते समय, भविष्य में पूर्ण होने वाले ऑपरेशन को संभालने के लिए वादों का उपयोग किया जाता है। टाइपस्क्रिप्ट वादों को प्रकार सुरक्षा और स्पष्टता के साथ प्रबंधित करने के लिए उपकरण प्रदान करता है। यह मार्गदर्शिका बुनियादी उपयोग से लेकर उन्नत परिदृश्यों तक, टाइपस्क्रिप्ट में वादों के साथ काम करने के तरीके की खोज करती है।
वादों को समझना
promise एक ऑब्जेक्ट है जो एसिंक्रोनस ऑपरेशन के अंतिम समापन या विफलता का प्रतिनिधित्व करता है। यह ऑपरेशन के परिणाम या त्रुटि को संभालने के लिए विधियाँ प्रदान करता है। TypeScript में, वादों को टाइप किया जा सकता है ताकि यह सुनिश्चित हो सके कि वे अपेक्षित डेटा प्रकार के साथ हल हो जाएँ।
वादों का मूल उपयोग
TypeScript में वादे बनाना और उनका उपयोग करना सीधा-सादा है। यहाँ एक वादे का उदाहरण दिया गया है जो स्ट्रिंग के साथ हल होता है:
function fetchData(): Promise {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Data fetched successfully!");
}, 1000);
});
}
fetchData().then((data) => {
console.log(data); // Outputs: Data fetched successfully!
}).catch((error) => {
console.error("Error:", error);
});
इस उदाहरण में, fetchData एक वादा लौटाता है जो एक स्ट्रिंग के साथ हल होता है। then विधि हल किए गए मान को संभालती है, जबकि catch किसी भी त्रुटि को संभालती है।
Async/Await के साथ वादों को संभालना
टाइपस्क्रिप्ट async/await सिंटैक्स का समर्थन करता है, जो वादों के साथ काम करने का अधिक पठनीय तरीका प्रदान करता है। वादों के साथ async/await का उपयोग करने का तरीका यहां बताया गया है:
async function fetchDataAsync(): Promise {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Data fetched successfully!");
}, 1000);
});
}
async function processData() {
try {
const data = await fetchDataAsync();
console.log(data); // Outputs: Data fetched successfully!
} catch (error) {
console.error("Error:", error);
}
}
processData();
इस उदाहरण में, fetchDataAsync फ़ंक्शन को async के रूप में घोषित किया गया है, जिससे यह वादे के समाधान के लिए प्रतीक्षा करने के लिए await कीवर्ड का उपयोग कर सकता है। त्रुटियों को try/catch ब्लॉक का उपयोग करके पकड़ा जाता है।
जेनरिक के साथ वादे टाइप करना
टाइपस्क्रिप्ट जेनरिक का उपयोग करके किसी वादे को हल करने वाले डेटा के प्रकार को निर्दिष्ट करने की अनुमति देता है। यह सुनिश्चित करता है कि पूरे कोड में प्रकारों को सही ढंग से प्रबंधित किया जाता है। यहाँ टाइप किए गए वादे का एक उदाहरण दिया गया है:
interface User {
id: number;
name: string;
}
function fetchUser(): Promise {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ id: 1, name: "John Doe" });
}, 1000);
});
}
fetchUser().then((user) => {
console.log(user.id, user.name); // Outputs: 1 John Doe
}).catch((error) => {
console.error("Error:", error);
});
इस उदाहरण में, fetchUser एक वादा लौटाता है जो User ऑब्जेक्ट के साथ हल होता है। प्रकार को जेनेरिक का उपयोग करके निर्दिष्ट किया जाता है, जिससे प्रकार सुरक्षा सुनिश्चित होती है।
API कॉल के साथ TypeScript में Promises का उपयोग करना
एसिंक्रोनस डेटा फ़ेचिंग को संभालने के लिए अक्सर API कॉल के साथ प्रॉमिस का उपयोग किया जाता है। TypeScript का टाइप सिस्टम API से प्रतिक्रियाओं को प्रबंधित करने में मदद करता है:
async function getUserData(userId: number): Promise {
const response = await fetch(`https://api.example.com/users/${userId}`);
if (!response.ok) {
throw new Error("Network response was not ok.");
}
const data: User = await response.json();
return data;
}
getUserData(1).then((user) => {
console.log(user);
}).catch((error) => {
console.error("Error:", error);
});
यह उदाहरण दर्शाता है कि API कॉल करने के लिए fetch का उपयोग कैसे करें और promises और async/await का उपयोग करके प्रतिक्रिया को कैसे संभालें। प्रतिक्रिया को User के रूप में टाइप किया जाता है, जिससे टाइप सुरक्षा सुनिश्चित होती है।
निष्कर्ष
टाइपस्क्रिप्ट में वादों के साथ काम करने से एसिंक्रोनस ऑपरेशन के लिए बेहतर प्रकार की सुरक्षा और स्पष्टता मिलती है। टाइपस्क्रिप्ट के टाइपिंग सिस्टम, एसिंक/एवेट सिंटैक्स और जेनरिक का उपयोग करके, डेवलपर्स वादों को प्रभावी ढंग से प्रबंधित कर सकते हैं और अधिक विश्वसनीय एप्लिकेशन बना सकते हैं।