এসিক্রনাস জাভাস্ক্রিপ্ট

কন্ট্রিবিউটর

  • arifshahriyarnader

শেয়ার করুন

asynchronous কি এবং এটা ব্রাউসার এর ভিতরে কিভাবে কাজ করে

  • const processOrder = () =>{
  • console.log(`Processing Order for customer One`);
  • setTimeout(() => {
  • console.log(`Cooking completd`);
  •   }, 3000);
  • console.log(`Order Processed for Customer One`);
  • };
  • console.log(`Take Order for Customer One`);
  • processOrder();
  • console.log(`Order Completed for Customer One`);
  • Synchronous প্রোগ্রামিংয়ে একটি কাজ সম্পন্ন হবার পর অন্য একটা কাজে মুভ করবে।.

  • যদি একটি কাজ সম্পন্ন না হয় সে অন্য একটি কাজে মুভ করবে না..

  • জাভাস্ক্রিপ্টে একটা বিহেভিয়ার রয়েছে সেটাকে বলা হয় ব্লকিং বিহেভিয়ার।.

  • অনেক সময় আমাদের ডাটাবেস থেকে ডাটা নিয়ে আসতে হয় বা API কল করে কোনো একটা ডাটা লোড করতে হয়

  • তখন প্রোগ্রাম রান করতে ৩-৪ সেকেন্ড সময় নিতে পারে সেটা ব্লক হয়ে থাকবে ।

  • যেটার কারণে বাকি প্রোগ্র্যাম গুলো রান হবে না

  • Synchronous এ একটি প্রোগ্রাম যতসময় পর্যন্ত শেষ না হয় সে অন্য একটি প্রোগ্রামে মুভ করতে পারবে না।

  • এখন আমরা চাচ্ছি যে আমাদের বাকি প্রোগ্রাম গুলো স্টপ না হয়ে সেগুলো রান করুক মাল্টি থ্রেডেড হয়ে

  • কিন্তু এই জিনিসটা আমরা

  • Synchronous এ সেটা করতে পারবো না

  • সেটার জন্য আমাদেরকে Asynchronous ব্যবহার করতে হবে.

  • সেটার জন্য আমাদেরকে SetTimeOut ব্যবহার করতে হবে এটা Asynchronous এর ফাঙ্কশন

  • জাভাস্ক্রিপ্ট কোড যখন ব্রাউজার এর ভিতরে রান হয় তখন জাভাস্ক্রিপ্ট কোড প্রথমে মেশিন ল্যাংগুয়েজে কনভার্ট হয়।

  • তারপর ব্রাউজার সেটা বুঝতে পারে

  • মেশিন ল্যাঙ্গুয়েজে কনভার্ট হওয়ার জন্য ব্রাউজার এর ভিতরে কোনো না কোনো একটা মেকানিসম আছে।

  • ব্রাউজার এর ভিতরে মূলত দুইটা জিনিস থাকে একটা হচ্ছে রান টাইম এনভিরমেন্ট।

  • রান টাইম এনভিরমেন্ট ছাড়া ব্রাউসার এর ভিতরে আরেকটা জিনিসটা থাকে

  • যেটা আমাদের জাভাস্ক্রিপ্ট কোডেকে মেশিন ল্যাঙ্গুয়েজে কোডে রূপান্তরিত করে

  • সেটা হচ্ছে ব্রাউজার এর ইঞ্জিন।

  • প্রত্যেকটা ব্রাউজারের কিন্তু আলাদা আলাদা একটা ইঞ্জিন আছে।

  • আবার ইঞ্জিন এর মধ্যে একটা জিনিস থাকে সেটা হচ্ছে কল স্ট্যাক।