जावास्क्रिप्ट कॉलबैक

"I will call back later!"

कॉलबैक (callback) एक फ़ंक्शन है जो एक अन्य फ़ंक्शन को पैरामीट के रूप में पास किया जाता है

इस तकनीक के द्वारा फ़ंक्शन एक अन्य फ़ंक्शन को बुला सकते हैं

कॉलबैक फ़ंक्शन दूसरे फ़ंक्शन पूरा होने के बाद चल सकते हैं

फ़ंक्शन श्रृंखला

JavaScript फ़ंक्शन उनके बुलाए जाने के क्रम में चलते हैं। नहीं कि उनके डिफ़ाइनिंग के क्रम में।

इस उदाहरण में अंत में "Goodbye" दिखाया जाएगा:

उदाहरण

function myFirst() {
  myDisplayer("Hello");
myCallback(sum);
function mySecond() {
  myDisplayer("Goodbye");
myCallback(sum);
myFirst();
mySecond();

myCalculator(5, 5, myDisplayer);

इस उदाहरण में अंत में "Hello" दिखाया जाएगा:

उदाहरण

function myFirst() {
  myDisplayer("Hello");
myCallback(sum);
function mySecond() {
  myDisplayer("Goodbye");
myCallback(sum);
mySecond();
myFirst();

myCalculator(5, 5, myDisplayer);

क्रमिक नियंत्रण

कभी-कभी आपको फ़ंक्शन कब चलाने का बेहतर नियंत्रण करना चाहिए।

आपको गणना करने और परिणाम दिखाने के लिए यह निर्णय करना है।

आप कैलकुलेटर फ़ंक्शन को बुलाएं (myCalculator) परिणाम सहेजिए और फिर दूसरे फ़ंक्शन को बुलाएं (उपरोक्त उदाहरण में) द्वारा परिणाम दिखाएं:

उदाहरण

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
myCallback(sum);
function myCalculator(num1, num2) {
  function myCalculator(num1, num2, myCallback) {
  return sum;
myCallback(sum);
let result = myCalculator(5, 5);
myDisplayer(result);

myCalculator(5, 5, myDisplayer);

या तो आप कैलकुलेटर फ़ंक्शन को बुलाएं (myCalculator) कॉलकुलेटर फ़ंक्शन को बुलाएं (उपरोक्त उदाहरण में):

उदाहरण

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
myCallback(sum);
function myCalculator(num1, num2) {
  function myCalculator(num1, num2, myCallback) {
  myDisplayer(sum);
myCallback(sum);
myCalculator(5, 5);

myCalculator(5, 5, myDisplayer);

ऊपरी पहले उदाहरण की समस्या यह है कि आपको दिखाने के लिए दो फ़ंक्शन को बुलाना होता है。

दूसरे उदाहरण की समस्या यह है कि आप कैलकुलेटर फ़ंक्शन को दिखाने से रोक नहीं सकते।

अब कॉलबैक उपयोग करने का समय है।

जावास्क्रिप्ट कॉलबैक

कॉलबैक एक फ़ंक्शन है जो एक अन्य फ़ंक्शन को पैरामीट के रूप में पास किया जाता है。

कॉलबैक का उपयोग करके आप कैलकुलेटर फ़ंक्शन को कॉलबैक के द्वारा बुलाएं (myCalculator),और जब गणना पूरी होने के बाद कैलकुलेटर फ़ंक्शन को रिकॉल्बेक चलाएं:

उदाहरण

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
myCallback(sum);
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());

कब कॉलबैक का उपयोग करें?

उपरोक्त उदाहरण बहुत ही रोचक नहीं है。

ये आसानी से सरल बनाया गया है, ताकि आपको कॉलबैक की सिंटैक्स को समझाया जा सके。

कॉलबैक वास्तव में एसिंक्रोनस फ़ंक्शन ही चमकता है, जिसमें एक फ़ंक्शन दूसरे फ़ंक्शन की प्रतीक्षा करता है (उदाहरण के लिए फ़ाइल लोड करने की प्रतीक्षा करना)

अगले चैप्टर में एसिंक्रोनस फ़ंक्शन का परिचय दिया जाएगा。