जावास्क्रिप्ट में वादे और कॉलबैक
प्रॉमिस और कॉलबैक जावास्क्रिप्ट में महत्वपूर्ण अवधारणाएं हैं, जिनका उपयोग एसिंक्रोनस कोड के प्रबंधन के लिए किया जाता है। आइए एक उदाहरण कार्यक्रम पर एक नज़र डालते हैं जो दर्शाता है कि कैसे जावास्क्रिप्ट में वादे और कॉलबैक का उपयोग किया जा सकता है।
``` जावास्क्रिप्ट
// यह फ़ंक्शन एक वादा देता है जो निर्दिष्ट देरी के बाद हल हो जाता है
कार्य विलंब (एमएस) {
नया वादा वापस करें (संकल्प => सेटटाइमआउट (संकल्प, एमएस));
}
// यह फ़ंक्शन कॉलबैक फ़ंक्शन लेता है और निर्दिष्ट विलंब के बाद इसे कॉल करता है
फ़ंक्शन विलंबित कॉलबैक (एमएस, कॉलबैक) {
सेटटाइमआउट (कॉलबैक, एमएस);
}
// वादों का उपयोग करना
कंसोल.लॉग ("वादे का उपयोग करना:");
कंसोल.लॉग ("प्रारंभ");
विलंब (2000)। तब (() => {
कंसोल.लॉग ("विलंब 1 - हल किया गया");
});
देरी (3000)। फिर (() => {
कंसोल.लॉग ("विलंब 2 - हल किया गया");
});
कंसोल.लॉग ("अंत");
// कॉलबैक का उपयोग करना
कंसोल.लॉग ("कॉलबैक का उपयोग करना:");
कंसोल.लॉग ("प्रारंभ");
विलंबित कॉलबैक (2000, () => {
कंसोल.लॉग ("विलंबित कॉलबैक 1");
});
विलंबित कॉलबैक (3000, () => {
कंसोल.लॉग ("विलंबित कॉलबैक 2");
});
कंसोल.लॉग ("अंत");
```
इस उदाहरण कार्यक्रम में, हम दो कार्यों को परिभाषित करते हैं: `विलंब` और` विलंबित कॉलबैक`।
`विलंब` फ़ंक्शन एक वादा लौटाता है जो एक निर्दिष्ट विलंब के बाद हल होता है। यह एक पैरामीटर `ms` लेता है, जो मिलीसेकंड में देरी को निर्दिष्ट करता है। जब वादा हल हो जाता है, तो यह 'संकल्प' फ़ंक्शन को कॉल करता है, जो केवल वादे को हल करता है।
`DelayedCallback` फ़ंक्शन दो पैरामीटर लेता है: `ms`, जो मिलीसेकंड में देरी को निर्दिष्ट करता है, और `कॉलबैक`, जो निर्दिष्ट विलंब के बाद कॉल किया जाने वाला फ़ंक्शन है। यह फ़ंक्शन केवल निर्दिष्ट विलंब और कॉलबैक फ़ंक्शन के साथ `सेटटाइमआउट` फ़ंक्शन को कॉल करता है।
फिर हम इन कार्यों का उपयोग यह प्रदर्शित करने के लिए करते हैं कि अतुल्यकालिक कोड के प्रबंधन के लिए वादे और कॉलबैक का उपयोग कैसे किया जा सकता है। पहले खंड में, हम दो कंसोल.लॉग स्टेटमेंट के निष्पादन में देरी करने के लिए वादों का उपयोग करते हैं। हम क्रमशः 2 और 3 सेकंड की देरी के साथ दो वादे बनाने के लिए `देरी` फ़ंक्शन का उपयोग करते हैं, और फिर प्रत्येक वादे के हल होने पर संदेश लॉग करने के लिए `फिर` विधि का उपयोग करते हैं।
दूसरे खंड में, हम दो कंसोल.लॉग स्टेटमेंट के निष्पादन में देरी के लिए कॉलबैक का उपयोग करते हैं। हम क्रमशः 2 और 3 सेकंड की देरी के साथ दो कॉलबैक बनाने के लिए `delayedCallback` फ़ंक्शन का उपयोग करते हैं, और फिर प्रत्येक कॉलबैक फ़ंक्शन को `setTimeout` फ़ंक्शन में पास करते हैं।
जब हम इस प्रोग्राम को चलाते हैं, तो हम देख सकते हैं कि वादे और कॉलबैक दोनों कंसोल.लॉग स्टेटमेंट के निष्पादन में देरी करने में सक्षम हैं, लेकिन वे अलग-अलग तरीकों से ऐसा करते हैं। वादा हल होने पर कोड निष्पादित करने के लिए वादे 'तत्कालीन' विधि का उपयोग करते हैं, जबकि कॉलबैक निर्दिष्ट विलंब के बाद निष्पादित होने के लिए 'सेटटाइमआउट' फ़ंक्शन को फ़ंक्शन पास करते हैं।
जावास्क्रिप्ट में वादों और कॉलबैक का उपयोग
प्रॉमिस और कॉलबैक जावास्क्रिप्ट में महत्वपूर्ण अवधारणाएं हैं जिनका उपयोग एसिंक्रोनस कोड के प्रबंधन के लिए किया जाता है। आइए जावास्क्रिप्ट में वादों और कॉलबैक के उपयोग पर एक नज़र डालें:
1. वादे
प्रॉमिस का उपयोग जावास्क्रिप्ट में एसिंक्रोनस कोड को प्रबंधित करने के लिए किया जाता है। वे ऐसी वस्तुएँ हैं जो एक ऐसे मूल्य का प्रतिनिधित्व करती हैं जो अभी तक उपलब्ध नहीं हो सकता है, लेकिन भविष्य में हल हो जाएगा। वादों का उपयोग उस कोड को प्रबंधित करने के लिए किया जाता है जिसे एसिंक्रोनस ऑपरेशन से परिणाम की प्रतीक्षा करने की आवश्यकता होती है, जैसे एपीआई कॉल करना या डेटाबेस से डेटा प्राप्त करना। प्रॉमिस का उपयोग ऑपरेशन के परिणाम को एक बार पूरा होने के बाद, या तो सफलतापूर्वक या त्रुटि के साथ संभालने के लिए किया जाता है।
2. कॉलबैक
कॉलबैक ऐसे कार्य हैं जो अन्य कार्यों के लिए तर्क के रूप में पारित किए जाते हैं और एक विशिष्ट घटना होने पर निष्पादित होते हैं। उनका उपयोग जावास्क्रिप्ट में अतुल्यकालिक कोड को प्रबंधित करने और एक विशिष्ट ऑपरेशन पूरा होने के बाद कोड को निष्पादित करने के लिए किया जाता है। कॉलबैक आमतौर पर ईवेंट श्रोताओं के साथ कोड निष्पादित करने के लिए उपयोग किया जाता है जब कोई ईवेंट, जैसे कि क्लिक या स्क्रॉल, वेबपेज पर होता है। एक बार पूरा होने के बाद ऑपरेशन के परिणाम को संभालने के लिए उनका उपयोग एसिंक्रोनस फ़ंक्शंस के साथ भी किया जाता है।
जावास्क्रिप्ट में वादों और कॉलबैक के कुछ सामान्य उपयोगों में शामिल हैं:
1. एपीआई कॉल करना: प्रॉमिस और कॉलबैक आमतौर पर जावास्क्रिप्ट में एपीआई कॉल करने के लिए उपयोग किए जाते हैं। एपीआई कॉल करते समय, सर्वर से प्रतिक्रिया की प्रतीक्षा करने और एक बार पूरा होने के बाद ऑपरेशन के परिणाम को संभालने के लिए एक वादा का उपयोग किया जा सकता है। सर्वर से प्राप्त होने के बाद प्रतिक्रिया को संभालने के लिए कॉलबैक फ़ंक्शन का उपयोग किया जा सकता है।
2. उपयोगकर्ता इनपुट को संभालना: जावास्क्रिप्ट में उपयोगकर्ता इनपुट को संभालने के लिए अक्सर कॉलबैक का उपयोग किया जाता है। उदाहरण के लिए, जब कोई उपयोगकर्ता किसी वेबपेज पर बटन क्लिक करता है, तो कॉलबैक फ़ंक्शन का उपयोग उपयोगकर्ता की कार्रवाई के जवाब में कोड निष्पादित करने के लिए किया जा सकता है।
3. डेटा प्राप्त करना: सर्वर या डेटाबेस से डेटा लाने के लिए प्रॉमिस और कॉलबैक का उपयोग किया जा सकता है। डेटा प्राप्त करते समय, डेटा को पुनर्प्राप्त करने के लिए प्रतीक्षा करने के लिए एक वादा का उपयोग किया जा सकता है, जबकि कॉलबैक फ़ंक्शन का उपयोग ऑपरेशन के परिणाम को पूरा करने के बाद संभालने के लिए किया जा सकता है।
4. एनिमेशन और ट्रांज़िशन: कॉलबैक का उपयोग अक्सर किसी वेबपेज पर एनिमेशन और ट्रांज़िशन को संभालने के लिए किया जाता है। उदाहरण के लिए, एनीमेशन या संक्रमण पूर्ण होने के बाद कोड को निष्पादित करने के लिए कॉलबैक फ़ंक्शन का उपयोग किया जा सकता है।