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. Q23. What is async/await and how does it improve upon Promises?
JavaScriptAdvanced

Q23. What is async/await and how does it improve upon Promises?

Promise লিখার সিনক্রোনাস মতো স্টাইল, error handle করা আর সমান্তরাল কাজের সঠিক পদ্ধতি।

async/await হলো ES2017-এ আসা সুন্দর syntax — মূল কাজটা এখনো Promise, কিন্তু লেখা হয় সাধারণ সিনক্রোনাস কোডের মতো। async ফাংশন সবসময় একটি Promise ফেরত দেয়, আর await ফলাফল আসা পর্যন্ত ওই ফাংশনকে থামিয়ে রাখে।

একই কাজ, দুই চেহারাjavascript
javascript
// Promise — চেইন দিয়ে
function getUser() {
  return fetch("/api/user")
    .then(function (res) { return res.json(); })
    .then(function (user) { return user.name; });
}

// async/await — সরাসরি
async function getUser() {
  const res = await fetch("/api/user");
  const user = await res.json();
  return user.name;
}

মূল সুবিধা হলো কোড সাধারণ লাইনে লাইনে পড়া যায় — লজিক থাকে সাধারণ, ফলাফল পাওয়ার জায়গায় শুধু await লেখা হয়।

Error handle করা আরও সহজ — try...catch ব্যবহার করলেই হয়, আলাদা করে .catch() চেইন করার দরকার নেই।

error handle করাjavascript
javascript
async function load() {
  try {
    const res = await fetch("/api/user");
    if (!res.ok) throw new Error("সার্ভার ত্রুটি");
    return await res.json();
  } catch (error) {
    console.error(error.message);
    return null;
  } finally {
    console.log("সবসময় চলে");
  }
}

একটি জিনিস খেয়াল রাখা জরুরি — await কোডকে সময়মতো থামায়, কিন্তু পুরো JavaScript থামায় না। ব্রাউজারের অন্য কাজ চলতে থাকে, শুধু ওই ফাংশনটির পরের লাইন অপেক্ষায় থাকে।

দুটি কাজ একে অন্যের জন্য অপেক্ষা না করে একসাথে চালাতে Promise.all-এর ভিতরে await ব্যবহার করুন।

ধারাবাহিক বনাম সমান্তরালjavascript
javascript
// ভুল — দ্বিতীয় কাজ প্রথমটার জন্য অপেক্ষা করছে
const user = await getUser();
const posts = await getPosts(); // অপেক্ষা করছে

// ভালো — দুটো একসঙ্গে শুরু হচ্ছে
const [user, posts] = await Promise.all([
  getUser(),
  getPosts(),
]);

টপ-লেভেল await ES module-এ সরাসরি ব্যবহার করা যায়, তবে সাধারণ function-এর ভিতরে নয়।

টপ-লেভেল awaitjavascript
javascript
// app.js — module হলে কাজ করে
const config = await fetch("/config").then(function (r) {
  return r.json();
});
বিষয়async/awaitPromise chain
পড়ার সহজতাসাধারণ কোডের মতো.then() চেইন
Error handletry...catch.catch()
ফলাফল পাওয়াawait দিয়ে সরাসরি.then() দিয়ে
সবসময় Promiseহ্যাঁ—
মনে রাখুন

await শুধু async ফাংশনের ভিতরে কাজ করে, আর for...of বা for লুপের ভিতরে লিখলে ধাপে ধাপে অপেক্ষা করে — ফলে ধীর হয়ে যায়। অনেক কাজ একসঙ্গে করতে Promise.all ব্যবহার করুন।

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

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

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

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

mdanamolhasan1998@gmail.com