एसिंक्रोनस फ़ंक्शंस के साथ काम करते समय, यह सुनिश्चित करना महत्वपूर्ण है कि एक फ़ंक्शन दूसरे के आगे बढ़ने से पहले पूरा हो जाए। जावास्क्रिप्ट में, इस सिंक्रनाइज़ेशन को प्राप्त करने के कई तरीके हैं।
उल्लेखित एक दृष्टिकोण फ़ंक्शन की पूर्णता को इंगित करने के लिए वैश्विक बूलियन चर का उपयोग करना है। कार्यात्मक होते हुए भी, यदि कई एसिंक्रोनस ऑपरेशन मौजूद हों तो यह विधि टकराव का शिकार हो सकती है।
एक अधिक सुंदर समाधान में कॉलबैक शामिल होता है, जिससे कॉलर को एसिंक्रोनस ऑपरेशन समाप्त होने के बाद निष्पादित होने वाले फ़ंक्शन को निर्दिष्ट करने की अनुमति मिलती है। कॉलबैक फ़ंक्शंस इस परिदृश्य को संभालने के लिए एक स्पष्ट और संक्षिप्त तरीका प्रदान करते हैं:
function firstFunction(_callback) {
// Perform asynchronous work here...
_callback();
}
function secondFunction() {
firstFunction(() => {
console.log('First function completed');
});
}
संक्षिप्त कोड के लिए, एरो फ़ंक्शन का उपयोग करने पर विचार करें:
firstFunction(() => console.log('First function completed'));
वैकल्पिक रूप से , यदि आपको एसिंक्रोनस संचालन पर अधिक नियंत्रण की आवश्यकता है, तो प्रॉमिस या एसिंक/प्रतीक्षा का उपयोग करने पर विचार करें। वादे एक अधिक संरचित दृष्टिकोण प्रदान करते हैं, जो आपको श्रृंखला संचालन और कई अतुल्यकालिक कॉल को कुशलतापूर्वक संभालने की अनुमति देता है।
const firstFunctionPromise = () => {
// Return a Promise object...
};
secondFunction()
.then(result => {
console.log('First function completed using Promise');
})
.catch(error => {
console.log('Error occurred: ' error);
});
बेहतर पठनीयता और संक्षिप्त कोड के लिए, async/await अधिक सरल सिंटैक्स प्रदान करता है:
const secondFunction = async () => {
const result = await firstFunction();
console.log('First function completed using async/await');
};
आखिरकार, सबसे अच्छा तरीका आपके विशिष्ट उपयोग के मामले की जटिलता और आवश्यकताओं पर निर्भर करता है। उपयुक्त सिंक्रोनाइज़ेशन विधि चुनकर, आप अपने एसिंक्रोनस कार्यों का सुचारू और पूर्वानुमानित निष्पादन सुनिश्चित कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3