Callback, Promise & Async/Await Explained

🔁 Callback, Promise & Async/Await (Express.js) – সম্পূর্ণ গাইড

Express.js অ্যাপে ডেটাবেস, API, ফাইল সিস্টেম ইত্যাদি কাজগুলো Asynchronous হয়। এই asynchronous কাজ হ্যান্ডেল করার জন্য আমরা ব্যবহার করি – Callback, Promise এবং Async/Await


📌 ১. Callback কী?

Callback হলো একটি function যা আরেকটি function-এর parameter হিসেবে পাঠানো হয় এবং কাজ শেষ হলে কল করা হয়।

📍 Callback এর সমস্যা:

  • কোড পড়তে কঠিন হয়
  • Nested callback (Callback Hell)
  • Error handling জটিল

🔹 Express.js এ Callback Example

app.get('/user', (req, res) => {
  getUserFromDB((err, user) => {
    if (err) {
      return res.status(500).send('Error occurred');
    }
    res.json(user);
  });
});
  

📌 ২. Promise কী?

Promise হলো একটি object যা ভবিষ্যতে একটি কাজ সফল (resolve) অথবা ব্যর্থ (reject) হবে তা নির্দেশ করে।

📍 Promise এর সুবিধা:

  • Callback Hell কমে যায়
  • Readable chaining (.then)
  • Better error handling (.catch)

🔹 Express.js এ Promise Example

app.get('/users', (req, res) => {
  getUsersFromDB()
    .then(users => {
      res.json(users);
    })
    .catch(err => {
      res.status(500).send('Server Error');
    });
});
  

📌 ৩. Async / Await কী?

Async/Await হলো Promise-এর উপর ভিত্তি করে তৈরি করা একটি modern syntax, যা asynchronous কোডকে synchronous এর মতো করে লিখতে সাহায্য করে।

📍 Async/Await এর সুবিধা:

  • সবচেয়ে readable কোড
  • try/catch দিয়ে সহজ error handling
  • Production-ready approach

🔹 Express.js এ Async/Await Example

app.get('/profile', async (req, res) => {
  try {
    const user = await getUserFromDB();
    res.json(user);
  } catch (error) {
    res.status(500).send('Something went wrong');
  }
});
  

📊 Callback vs Promise vs Async/Await

Feature Callback Promise Async/Await
Readability ❌ কম ⚠️ মাঝারি ✅ বেশি
Error Handling কঠিন সহজ সবচেয়ে সহজ
Best for Express ❌ না ⚠️ ভালো ✅ Best

✅ Express.js Best Practice

  • সব route handler এ async/await ব্যবহার করুন
  • try/catch দিয়ে error ধরুন
  • Callback শুধুমাত্র legacy code এ রাখুন
  • Promise chain এড়িয়ে চলুন

🎯 Express.js অ্যাপে Professional & Clean Code লেখার জন্য Async / Await ব্যবহার করাই সবচেয়ে সেরা সিদ্ধান্ত।

👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Callback কী?

Callback হলো একটি ফাংশন যা অন্য একটি ফাংশনের আর্গুমেন্ট হিসেবে পাঠানো হয় এবং কোনো কাজ শেষ হলে কল হয়।

2. Callback এর সমস্যা কী?

বেশি Callback ব্যবহারে কোড জটিল হয়ে যায়, যাকে Callback Hell বলা হয়।

3. Promise কী?

Promise হলো একটি অবজেক্ট যা ভবিষ্যতে কোনো কাজ সফল (resolve) বা ব্যর্থ (reject) হবে তা নির্দেশ করে।

4. Promise এর স্টেট কয়টি?

Promise এর তিনটি স্টেট থাকে: Pending, Fulfilled এবং Rejected।

5. Async/Await কী?

Async/Await হলো Promise এর উপর ভিত্তি করে তৈরি একটি সিনট্যাক্স যা অ্যাসিঙ্ক কোডকে সিঙ্ক্রোনাসের মতো সহজভাবে লেখার সুযোগ দেয়।