एसिंक्रोनस जावास्क्रिप्ट

"मैं बाद में पूरा करूंगा!"

साथ ही अन्य फ़ंक्शन के साथ संचालित फ़ंक्शन को असीमी (asynchronous) कहा जाता है

एक अच्छा उदाहरण है JavaScript setTimeout()

असीमी JavaScript

पिछले अध्याय में इस्तेमाल की गई उदाहरण को बहुत ही सरल बनाया गया है。

यह उद्देश्य कॉलबैक फ़ंक्शन के वाक्यबद्धता का प्रदर्शन करने के लिए है:

उदाहरण

फ़ंक्शन माइडिस्प्लेयर(सोमें) {
  डॉक्युमेंट.ईडीबीआय( "डेमो").इन्हैनरहाउस = सोमें;
}
function myCalculator(num1, num2, myCallback) {
  let sum = num1 + num2;
  myCallback(sum);
}
myCalculator(5, 5, myDisplayer);

亲自试一试

उपरोक्त उदाहरण मेंmyDisplayer यह फ़ंक्शन का नाम है。

यह फ़ंक्शन के रूप में पारामीटर के रूप में दे जाता है myCalculator();

वास्तविक जगत में, कॉलबैक असीमी फ़ंक्शन के साथ सबसे अधिक इस्तेमाल किया जाता है。

एक आम उदाहरण है JavaScript setTimeout();

अवधि का इंतजार करें

जब आप जावास्क्रिप्ट फ़ंक्शन का उपयोग करते हैं, तो setTimeout(); जब, आप अवधि के बाद कॉलबैक फ़ंक्शन को निर्दिष्ट कर सकते हैं:

उदाहरण

setTimeout(myFunction, 3000);
फ़ंक्शन माइफ़ंक्शन() {
  document.getElementById("demo").innerHTML = "मैं तुमसे प्यार करता हूँ !!";
}

亲自试一试

在上面的示例中,माइफ़ंक्शन इसका उपयोग कॉलबैक के रूप में किया जाता है。

函数(函数名)作为参数传递给 setTimeout();

3000 मिलीसेकंड अंतराल के बाद, इसलिए 3 सेकंड बाद फ़ंक्शन बुलाया जाएगा माइफ़ंक्शन( )

जब आप फ़ंक्शन को पारामीटर के रूप में दे रहे हैं, तो स्क्रीन के बजाय बारे में नहीं उठाएं。

सही: setTimeout(myFunction, 3000);

गलती: setTimeout(myFunction(), 3000);

यदि आप फ़ंक्शन का नाम को एक अन्य फ़ंक्शन को पारामीटर के रूप में नहीं दे देते हैं, तो आप हमेशा पूरी फ़ंक्शन को दे सकते हैं:

उदाहरण

setTimeout(function() { myFunction("मैं तुमसे प्यार करता हूँ तीन हजार मिनट बाद; }, 3000);
फ़ंक्शन माइफ़ंक्शन(वैल्यू) {}}
  डॉक्युमेंट.ईडीबीआय( "डेमो").इन्हैनरहाउस = वैल्यू;
}

亲自试一试

उपरोक्त उदाहरण मेंफ़ंक्शन() { माइफ़ंक्शन( "मैं आपको प्यार करता हूँ !!!"); } साधारणतया रिटर्न के रूप में उपयोग किया जाता है। यह एक पूर्ण फ़ंक्शन है। पूर्ण फ़ंक्शन setTimeout() को पारामीट के रूप में पास किया जाता है。

3000 मिलीसेकंड अंतराल के बाद, इसलिए 3 सेकंड बाद फ़ंक्शन बुलाया जाएगा माइफ़ंक्शन( )

अंतराल का वर्गांकन:

जब आप जावास्क्रिप्ट फ़ंक्शन का उपयोग करते हैं, तो सेटअंटरवेल( ) कभी अंतराल के दौरान कोई रिटर्न करना नहीं है, तो इसे देखें:

उदाहरण

सेटअंटरवेल(माइफ़ंक्शन, 1000);
फ़ंक्शन माइफ़ंक्शन() {
  लेट ड = नया डेटेंशन();
  डॉक्युमेंट.ईडीबीआय( "डेमो").इन्हैनरहाउस=
  ड.गेटआउट() + ":" +
  ड.गेटमिनट() + ":" +
  ड.गेटसेकेंड();
}

亲自试一试

उपरोक्त उदाहरण मेंमाइफ़ंक्शन 用作回调。

函数(函数名)作为参数传递给 सेटअंटरवेल( )

1000 अंतराल के मिलीसेकंड है, इसलिए माइफ़ंक्शन( ) निर्धारित समय के बीच प्रति सेकंड एक बार बुला दें।

फ़ाइल पर प्रतीक्षा करें

यदि आप बाहरी संसाधन (जैसे अटकच्छा या फ़ाइल) लोड करने के लिए फ़ंक्शन बना देते हैं, तो उन सामग्री का उपयोग नहीं किया जा सकता है जब तक सामग्री पूरी तरह से लोड नहीं हो जाती है。

यह सर्वश्रेष्ठ समय है कि आप फ़ंक्शन बनाएं (

यहाँ पर एक एचटीएमएल फ़ाइल लोड किया जा रहा है (mycar.htmlफ़ाइल पूरी तरह से लोड होने के बाद वेब पृष्ठ में दिखाएं:

फ़ाइल पर प्रतीक्षा करें:

फ़ंक्शन माइडिस्प्लेयर(सोमें) {
  डॉक्युमेंट.ईडीबीआय( "डेमो").इन्हैनरहाउस = सोमें;
}
फ़ंक्शन गेटफ़ाइल(माइकॉल्बैक) {
  लेट रिक = नया XMLHttpRequest();
  रिक.ओपन( 'GET', "माईकार.हेटल");
  रिक.ऑनलोड = function() {
    यदि (रिक.स्टेटस == 200) {
      माइकॉल्बैक(इस.थिंपोटेस्ट्रिंग);
    अन्यथा {
      माइकॉल्बैक( "एरर: " + रिक.स्टेटस);
    }
  }
  req.send();
}
getFile(myDisplayer);

亲自试一试

在上面的示例中,myDisplayer 用作回调。

函数(函数名)作为参数传递给 getFile()

以下是 mycar.html 的副本:

mycar.html

Nice car

A car is a wheeled, self-powered motor vehicle used for transportation. Most definitions of the term specify that cars are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels.

(Wikipedia)