जावास्क्रिप्ट कॉलबैक
"म बाद में फ़ोन करती हु!"
कॉलबैक एक फ़ंक्शन है जिसे किसी अन्य फ़ंक्शन के तर्क के रूप में पारित किया जाता है
यह तकनीक एक फ़ंक्शन को दूसरे फ़ंक्शन को कॉल करने की अनुमति देती है
किसी अन्य फ़ंक्शन के समाप्त होने के बाद कॉलबैक फ़ंक्शन चल सकता है
फंक्शन सीक्वेंस
जावास्क्रिप्ट कार्यों को उस क्रम में निष्पादित किया जाता है जिसे वे कहते हैं। क्रम में नहीं उन्हें परिभाषित किया गया है।
यह उदाहरण "अलविदा" प्रदर्शित करेगा:
उदाहरण
function myFirst() {
myDisplayer("Hello");
}
function
mySecond() {
myDisplayer("Goodbye");
}
myFirst();
mySecond();
यह उदाहरण "हैलो" प्रदर्शित करेगा:
उदाहरण
function myFirst() {
myDisplayer("Hello");
}
function
mySecond() {
myDisplayer("Goodbye");
}
mySecond();
myFirst();
अनुक्रम नियंत्रण
कभी-कभी आप किसी फ़ंक्शन को निष्पादित करने के समय पर बेहतर नियंत्रण रखना चाहेंगे।
मान लीजिए आप एक गणना करना चाहते हैं, और फिर परिणाम प्रदर्शित करें।
आप कैलकुलेटर फ़ंक्शन ( myCalculator
) को कॉल कर सकते हैं, परिणाम को सहेज सकते हैं, और फिर myDisplayer
परिणाम प्रदर्शित करने के लिए किसी अन्य फ़ंक्शन ( ) को कॉल कर सकते हैं:
उदाहरण
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function myCalculator(num1, num2) {
let sum = num1 + num2;
return sum;
}
let result = myCalculator(5, 5);
myDisplayer(result);
या, आप एक कैलकुलेटर फ़ंक्शन ( myCalculator
) को कॉल कर सकते हैं, और कैलकुलेटर फ़ंक्शन को डिस्प्ले फ़ंक्शन ( myDisplayer
) को कॉल करने दें:
उदाहरण
function myDisplayer(some) {
document.getElementById("demo").innerHTML
= some;
}
function myCalculator(num1, num2) {
let sum = num1 + num2;
myDisplayer(sum);
}
myCalculator(5, 5);
ऊपर दिए गए पहले उदाहरण के साथ समस्या यह है कि आपको परिणाम प्रदर्शित करने के लिए दो कार्यों को कॉल करना होगा।
दूसरे उदाहरण के साथ समस्या यह है कि आप कैलकुलेटर फ़ंक्शन को परिणाम प्रदर्शित करने से नहीं रोक सकते।
अब कॉलबैक लाने का समय आ गया है।
जावास्क्रिप्ट कॉलबैक
कॉलबैक एक फ़ंक्शन है जिसे किसी अन्य फ़ंक्शन के तर्क के रूप में पारित किया जाता है।
कॉलबैक का उपयोग करके, आप कैलकुलेटर फ़ंक्शन ( myCalculator
) को कॉलबैक के साथ कॉल कर सकते हैं, और गणना समाप्त होने के बाद कैलकुलेटर फ़ंक्शन को कॉलबैक चलाने दें:
उदाहरण
function myDisplayer(some) {
document.getElementById("demo").innerHTML
= some;
}
function myCalculator(num1, num2, myCallback) {
let sum = num1 + num2;
myCallback(sum);
}
myCalculator(5, 5, myDisplayer);
उपरोक्त उदाहरण में, myDisplayer
एक फ़ंक्शन का नाम है।
myCalculator()
इसे तर्क के रूप में पारित किया जाता है।
जब आप किसी फ़ंक्शन को तर्क के रूप में पास करते हैं, तो याद रखें कि कोष्ठक का उपयोग न करें।
दाएँ: myCalculator(5, 5, myDisplayer);
गलत:myCalculator(5, 5, myDisplayer ());
कॉलबैक का उपयोग कब करें?
ऊपर दिए गए उदाहरण बहुत रोमांचक नहीं हैं।
आपको कॉलबैक सिंटैक्स सिखाने के लिए उन्हें सरल बनाया गया है।
जहां कॉलबैक वास्तव में चमकते हैं एसिंक्रोनस फ़ंक्शंस में होते हैं, जहां एक फ़ंक्शन को दूसरे फ़ंक्शन की प्रतीक्षा करनी पड़ती है (जैसे फ़ाइल लोड होने की प्रतीक्षा करना)।
अतुल्यकालिक कार्यों को अगले अध्याय में शामिल किया गया है।