Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • JavaScript Documentation48টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • JavaScript কী?
  • Syntax & Comments
  • Variables
  • Data Types: Basics
  • Data Types: Conversion
  • Data Types: Advanced
  • Strings
  • Numbers & Math
  • Date & Time
  • Operators
  • Conditions
  • Loops
  • Functions: Basics
  • Functions: Intermediate
  • Functions: Advanced
  • Scope & Hoisting
  • Closures & this
  • ES6+ Modern
  • Arrays: Basics
  • Arrays: Intermediate
  • Arrays: Advanced
  • Objects: Basics
  • Objects: Intermediate
  • Objects: Advanced
  • Class: Basics
  • Class: Intermediate
  • Class: Advanced
  • DOM: Basics
  • DOM: Intermediate
  • DOM: Advanced
  • Events: Basics
  • Events: Intermediate
  • Events: Advanced
  • Async JavaScript
  • Promise
  • Async / Await
  • Fetch API
  • JSON
  • Modules
  • Browser Storage
  • Event Loop Deep
  • Prototype Chain
  • Iterators & Generators
  • WeakMap, WeakSet, Proxy
  • Error Handling
  • Practice Problems
  • Mini Projects
  • Basics
  • Functions & Scope
  • Types & Syntax
  • Arrays & Objects
  • Advanced
  • Functional Programming
  • Objects & Symbols
  • Async Deep Dive
  • Modern JavaScript
  1. Docs
  2. JavaScript
  3. প্রশ্ন/উত্তর
  4. Advanced
  5. Q21. What is the event loop in JavaScript?
JavaScriptAdvanced

Q21. What is the event loop in JavaScript?

Call stack, task queue আর microtask queue কীভাবে একসাথে কাজ করে — আউটপুট ধাপে ধাপে।

JavaScript একসাথে একটাই কাজ করে (single-threaded)। Event loop হলো সেই ব্যবস্থা যা সিনক্রোনাস কাজ শেষ হলে অপেক্ষায় থাকা কাজগুলো একে একে চালায় — যাতে পেজ থেমে না যায়।

এর তিনটি প্রধান অংশ আছে — Call stack (এখন চলতে থাকা কাজ), Microtask queue (Promise-এর কাজ) আর Task queue বা macrotask queue (setTimeout, event handler-এর কাজ)।

আউটপুট ক্রম দেখাjavascript
javascript
console.log("1");

setTimeout(() => console.log("2"), 0); // task queue

Promise.resolve().then(() => console.log("3")); // microtask

console.log("4");

// আউটপুট: 1, 4, 3, 2

ধাপে ধাপে চলে। প্রথমে console.log("1") সাথে সাথে চলে। তারপর setTimeout কিছুই এখনই না করে টাইমার সেট করে task queue-তে বসে, আর Promise.resolve().then() microtask queue-তে বসে। এরপর console.log("4") চলে।

সব সিনক্রোনাস কাজ শেষ হলে event loop প্রথমে সম্পূর্ণ microtask queue খালি করে — তাই আসে 3। তারপর task queue থেকে 2 চলে। ফলে setTimeout(..., 0) দিলেও সেটা Promise-এর পরেই চলে।

আরও কিছু সময়সূচিjavascript
javascript
// দুই ধরনের task
setTimeout(() => console.log("timeout"), 0);

setInterval(() => console.log("interval"), 100);

queueMicrotask(() => console.log("microtask"));

requestAnimationFrame(() => console.log("animation"));

// requestAnimationFrame সাধারণত task-এর আগে চলে

একটি লম্বা সিনক্রোনাস কাজ চলাকালীন setTimeout বা Promise-এর কাজ কোনোদিন চলতে পারে না — এটিই event loop-এর সবচেয়ে বড় সীমাবদ্ধতা।

লম্বা কাজ থামিয়ে দেওয়াjavascript
javascript
console.log("শুরু");

// ভুল — পুরো হিসাব আগে শেষ হবে
for (let i = 0; i < 1e9; i++) {}

console.log("শেষ");

// ভালো — কাজ ভাগ করে দেওয়া
function run() {
  if (moreWork()) setTimeout(run, 0);
}
run();
Queueকী থাকেসময়
Call stackএখন চলতে থাকা কাজসঙ্গে সঙ্গে
Microtask queuePromise.then, queueMicrotaskstack খালি হলে সবার আগে
Task queuesetTimeout, setInterval, I/Omicrotask শেষ হলে
মনে রাখুন

সহজ সূত্র — সিনক্রোনাস কাজ আগে, তারপর সব microtask, তারপর একটি task, তারপর আবার microtask। যখন কোনো কিছু "সঙ্গে সঙ্গে" কাজ করছে না, event loop-ই কারণ।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
Advanced বিভাগের আরও প্রশ্নJavaScript প্রশ্ন/উত্তর
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com