ఆసింక్రోనస్ జావాస్క్రిప్ట్

"నేను తర్వాత పూర్తి చేస్తాను!"

ఇతర ఫంక్షన్లతో పాటు నడిచే ఫంక్షన్లను అసింక్రోనస్ (asynchronous) అంటారు

జావాస్క్రిప్ట్ setTimeout() ఒక మంచి ఉదాహరణ

అసింక్రోనస్ జావాస్క్రిప్ట్

గత చాప్టర్లో ఉపయోగించబడిన ఉదాహరణలు చాలా సరళీకరించబడినవి.

ఇది కాల్బ్యాక్ ఫంక్షన్ సంకేతాన్ని ప్రదర్శించడానికి ఉద్దేశించబడింది:

ఉదాహరణ

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();

వాస్తవ ప్రపంచంలో, కాల్బ్యాక్లు అసింక్రోనస్ ఫంక్షన్లతో అత్యంత ఉపయోగించబడతాయి.

జావాస్క్రిప్ట్ ఒక సాధారణ ఉదాహరణ setTimeout();

సూపర్ టైమ్ వెచ్చాడు

జావాస్క్రిప్ట్ ఫంక్షన్స్ ఉపయోగించడం లో, setTimeout(); ఈ సమయంలో, సూపర్ టైమ్ అయిన కాల్బ్యాక్ ఫంక్షన్ని నిర్దేశించవచ్చు:

ఉదాహరణ

setTimeout(myFunction, 3000);
function myFunction() {
  document.getElementById("demo").innerHTML = "నేను నిన్ను ప్రేమిస్తున్నాను !!";
}

ప్రయత్నించండి

పైని ఉదాహరణలో మీరు స్వయంగా ప్రయత్నించండిmyFunction కాల్బ్యాక్ గా ఉపయోగించబడుతుంది.

ఫంక్షన్ (ఫంక్షన్ పేరు) పరామితంగా పాస్ చేయబడుతుంది setTimeout();

3000 మిలీసెకన్లు అంతరం ఉంటుంది కాబట్టి 3 సెకన్ల తర్వాత కాల్లు చేయబడుతుంది myFunction()

మీరు ఫంక్షన్ని పారామీటర్ గా పంపించినప్పుడు, బ్రాకెట్లను వాడకూడదు.

సరైన: setTimeout(myFunction, 3000);

తప్పు: setTimeout(myFunction(), 3000);

మీరు ఫంక్షన్ పేరును మరొక ఫంక్షన్కు పారామీటర్ గా పంపకపోతే, మీరు ఫంక్షన్ని మొత్తం పంపవచ్చు:

ఉదాహరణ

setTimeout(function() { myFunction("నేను నిన్ను ప్రేమిస్తున్నాను !!!"); }, 3000);
function myFunction(value) {}}
  document.getElementById("demo").innerHTML = value;
}

ప్రయత్నించండి

పైని ఉదాహరణలో,function(){ myFunction("I love You !!!"); } కాల్బ్యాక్ వలె ఉపయోగించబడుతుంది. ఇది ఒక పూర్తి ఫంక్షన్ ఉంటుంది. పూర్తి ఫంక్షన్ setTimeout()కు పారామీటర్ గా పంపబడుతుంది.

3000 మిలీసెకన్లు అంతరం ఉంటుంది కాబట్టి 3 సెకన్ల తర్వాత కాల్లు చేయబడుతుంది myFunction()

వెంటానే ఆగాగు:

జావాస్క్రిప్ట్ ఫంక్షన్స్ ఉపయోగించడం లో, setInterval() ప్రతి అంతరంలో పనిచేసే కాల్బ్యాక్ ఫంక్షన్ను నిర్దేశించవచ్చు:

ఉదాహరణ

setInterval(myFunction, 1000);
function myFunction() {
  let d = new Date();
  document.getElementById("demo").innerHTML=
  d.getHours() + ":" +
  d.getMinutes() + ":" +
  d.getSeconds();
}

ప్రయత్నించండి

పైని ఉదాహరణలో,myFunction కాల్బ్యాక్ వాడుతారు.

ఫంక్షన్ (ఫంక్షన్ పేరు) పరామితంగా పాస్ చేయబడుతుంది setInterval()

1000 మిలీసెకన్లు అంతరం ఉంటుంది కాబట్టి myFunction() ప్రతి సెకన్లో ఒకసారి కాల్బ్యాక్ కాల్లు చేయండి.

ఫైలు వెంటానే ఆగాగు:

మీరు బాహ్య వనరులను (స్క్రిప్టులు లేదా ఫైల్స్ వంటి) లోడ్ చేసే ఫంక్షన్స్ రూపొందించినప్పుడు, వాటి నిర్ణయం పూర్తిగా లోడ్ అయ్యే ముందు వాటిని ఉపయోగించలేరు.

కాల్బ్యాక్ ఉపయోగించడానికి ఇది ఉత్తమ సమయం.

ఈ ఉదాహరణలో హ్ట్ముల్ ఫైల్ ను లోడ్ చేస్తాము (mycar.html) మరియు ఫైల్ పూర్తిగా లోడ్ అయిన తర్వాత నిర్మించిన హ్ట్ముల్ ఫైల్ ను వెబ్ పేజీలో ప్రదర్శించండి:

ఫైలు వెంటానే ఆగాగు:

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}
function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(this.responseText);
    }
      myCallback("దోషం: " + req.status);
    }
  }
  req.send();
}
getFile(myDisplayer);

ప్రయత్నించండి

పైని ఉదాహరణలో మీరు స్వయంగా ప్రయత్నించండిmyDisplayer కాల్బ్యాక్ వాడుతారు.

ఫంక్షన్ (ఫంక్షన్ పేరు) పరామితంగా పాస్ చేయబడుతుంది getFile()

ఇక్కడ ఉంది: mycar.html యొక్క కాపీసి:

mycar.html

<img src="img_car.jpg" alt="నైస్ కార్" style="width:100%">
<p>ఒక కార్ ఒక చక్రాలతో, స్వయం శక్తితో పరివహనకు ఉపయోగించే మోటార్ వాహనం.</p>
<p>పదం యొక్క అనేక నిర్వచనాలు పేర్కొంది కార్లు ప్రధానంగా రహదారులపై నడిచేటాయి, ఒక మరియు ఎనిమిది మంది యొక్క సీటింగ్ కలిగి ఉంటాయి, సాధారణంగా నాలుగు చక్రాలను కలిగి ఉంటాయి.</p>
<p>(వికీపీడియా)</p>