অসিনক্রোনাস জেভাস্ক্রিপ্ট

"I will finish later!"

অন্য ফাংশনগুলির সাথে একইসঙ্গে চলাকালীন ফাংশনকে অসিনক্রিওনিক (asynchronous) বলা হয়

একটি ভালো উদাহরণ হল JavaScript setTimeout()

অসিনক্রিওনিক JavaScript

পূর্ববর্তী চাপটিতে ব্যবহৃত উদাহরণগুলি অনেকটাই সরলীকরণ করা হয়েছে。

এর উদ্দেশ্য হল কলব্যক্তি ফাংশনের সিনটাক্স প্রদর্শন করা:

উদাহরণ

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

প্রকৃত বিশ্বে, কলব্যক্তি সাধারণত অসিনক্রিওনিক ফাংশনগুলির সাথে ব্যবহৃত হয়。

একটি সাধারণ উদাহরণ হল JavaScript setTimeout()

সময়কাল অপেক্ষা করা

জিএসকিউ ফাংশন ব্যবহার করার সময়, setTimeout() যখন, কোনও সময়কাল পাস হওয়ার পরে কোনও কলব্যক্তি চালু করতে পারেন:

উদাহরণ

setTimeout(myFunction, 3000);
function myFunction() {
  document.getElementById("demo").innerHTML = "I love You !!";
}

স্বয়ং প্রয়াস করুন

উপরের উদাহরণেmyFunction একটি কলব্যক্তি হিসাবে ব্যবহৃত হয়。

ফাংশন (ফাংশন নাম) কোলব্যাক হিসাবে পাঠানো হয় setTimeout()

3000 হল সময়শেষের মিলিসেকেন্ড, তাই 3 সেকেন্ড পর কল করা হবে myFunction()

যখন আপনি ফাংশনটিকে পারামিটার হিসাবে পাঠানোর সময়, ব্র্যাকেট ব্যবহার করতে নয়।

সঠিক: setTimeout(myFunction, 3000);

ত্রুটি: setTimeout(myFunction(), 3000);

যদি আপনি একটি ফাংশনের নামকে পারামিটার হিসাবে পাঠানো না, তবে আপনি সরাসরি ফাংশনটিকে পাঠাতে পারেন:

উদাহরণ

setTimeout(function() { myFunction("I love You !!!"); }, 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() প্রতি সেকেন্ডে একবার কল করুন。

ফাইল অপেক্ষা করুন

আপনি যদি বাইরের সংস্থান (যেমন স্ক্রিপ্ট বা ফাইল) লোড করার জন্য ফাংশন তৈরি করেন, তবে এই সমস্ত সামগ্রীকে সম্পূর্ণভাবে লোড হওয়ার আগে এই সামগ্রীকে ব্যবহার করা যাবে না。

এটা কলব্যাক ব্যবহারের সর্বোত্তম সময়।

এই উদাহরণে HTML ফাইল লোড করা হচ্ছে (mycar.htmlএবং ফাইল সম্পূর্ণভাবে লোড হওয়ার পর ওয়েবসাইটে 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("Error: " + 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>