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. Async/Await
JavaScriptIntermediate

Async/Await

async function, await, try/catch, Promise.all/race, Promise-এর চেয়ে পরিষ্কার async কোড — বাংলায়।

26টি অংশবাংলা ভাষায়

Promise-এর chain-গুলো দ্রুত জটিল হয়। `async`/`await` দিয়ে async কোড প্রায় synchronous-এর মতো সরল হয়ে যায় — পড়া ও বজায় রাখা সহজ।

async function

async function greet() {
  return "নমস্কার";
}

console.log(greet()); // Promise { <fulfilled>: "নমস্কার" }

greet().then(console.log); // নমস্কার

async function সবসময় একটি Promise দেয় — return-এর মান promise থেকে শেষ। throw করলে rejected promise।

await

function wait(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

async function run() {
  console.log("শুরু");
  await wait(1000);       // এখানে থামে, promise settle-এর অপেক্ষায়
  console.log("1 সেকেন্ড পরে");
}

run();

await কেবল async function-এর ভেতরে চলে — Promise settle হওয়া পর্যন্ত pause মানে block নয়; event loop অন্য কাজ করতে পারে।

fetch + await

async function loadUser() {
  const res = await fetch("/api/user");
  const user = await res.json();
  console.log(user.name);
}

loadUser();

Error handling — try/catch

async function loadUser() {
  try {
    const res = await fetch("/api/user");
    if (!res.ok) {
      throw new Error(`HTTP ${res.status}`);
    }
    const user = await res.json();
    console.log(user.name);
  } catch (err) {
    console.error("সমস্যা:", err.message);
  }
}

loadUser();

await-এ reject হলে exception-এর মতো — try/catch দিয়ে ধরা যায়। এটিই .then().catch() চেয়ে সুন্দর — promise chain-এর চেয়ে error handling এক জায়গায়।

finally

async function save() {
  setLoading(true);
  try {
    await api.save(data);
  } catch (err) {
    toast(err.message);
  } finally {
    setLoading(false);   // success/error — উভয়ক্ষেত্রেই
  }
}

Parallel — Promise.all

async function loadAll() {
  const [user, posts, likes] = await Promise.all([
    fetch("/api/user").then((r) => r.json()),
    fetch("/api/posts").then((r) => r.json()),
    fetch("/api/likes").then((r) => r.json()),
  ]);

  console.log(user, posts, likes);
}

Promise.all একসাথে parallel-এ চালায়, সব settle পর্যন্ত অপেক্ষা। ধীর-operations-কে একের পর এক না চালিয়ে এভাবে দ্রুত করা যায়। কোনোটি reject-এ গেলে সব দেয় rejected।

Promise.race

async function withTimeout(promise, ms) {
  const timeout = new Promise((_, reject) =>
    setTimeout(() => reject(new Error("timeout")), ms),
  );
  return Promise.race([promise, timeout]);
}

// 3 সেকেন্ডের মাঝে উত্তর না পেলে error
const data = await withTimeout(loadData(), 3000);

await-এ loop

async function processAll(items) {
  for (const item of items) {
    await process(item);   // একে একে — order ঠিক
  }
}

// সমান্তরাল — order অগুরুত্বপূর্ণ, এটা দ্রুত কিন্তু ধারাবাহিক নয়
async function parallel(items) {
  await Promise.all(items.map(process));
}

for...of + await ধারাবাহিক। parallel দরকার হলে Promise.all। কোনটা কোন পরিস্থিতিতে — ডেটা একে অন্যের উপর নির্ভর করলে sequential, না হলে parallel।

কৌশলব্যবহার
asyncpromise-র function
awaitpromise settle-এর অপেক্ষা
try/catch/finallyerror ও cleanup
Promise.allparallel সব settle
Promise.raceপ্রথম settle — timeout প্যাটার্ন
await-এ ভুল block

await শুধু async function-এ চলে। global/regular function-এ লিখলে SyntaxError।

Interview

"Promise chain বনাম async/await?" — async/await আরও পাঠযোগ্য, try/catch সহজ, টপ-লেভেল flow পরিষ্কার; chain-এ stepwise catch/transform বেশি control।

Practice

দুটি API থেকে ডেটা parallel-এ আনুন (Promise.all), একটিতে fail-এ fallback দেখান — error handling সহ।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরJavaScript PromiseপরেরFetch API
এই পেজে
Tech Tutor

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

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

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

mdanamolhasan1998@gmail.com