08/08/2026
অনেকেই মনে করে,
"Async/Await আসার পরে Callback আর লাগে না!"
কিন্তু সত্যি কথা হলো...
Async/Await Callback-কে replace করেনি। বরং অনেক জায়গায় Callback এখনো সবচেয়ে ভালো solution।
Programming-এ এই দুইটা জিনিসের ভিন্ন ভিন্ন use case রয়েছে।
১. Callback Function
আপনি ছোট ভাইকে বললেন,
"তেল গরম হলে আমাকে ডাকিস।"
মানে আপনি একটা কাজ অন্য কাউকে দিয়ে রাখলেন।
কাজ শেষ হলে সে আপনাকে call করবে।
JavaScript-এ Callback-ও ঠিক এই কাজটাই করে।
setTimeout(() => {
console.log("তেল গরম হয়েছে!");
}, 2000);
এখানে setTimeout() দুই সেকেন্ড অপেক্ষা করবে।
তারপর callback function-টাকে call করবে।
---
২. Async/Await
এবার ধরুন আপনি বললেন,
"তেল গরম না হওয়া পর্যন্ত আমি এই ধাপটা শুরু করবো না।"
মানে code-টা এমনভাবে লিখলেন, যেন একটার পরে একটা step খুব clean ভাবে দেখা যায়।
async function cook() {
await heatOil();
console.log("এবার ডিম ভাজি!");
}
এখানে await দেখে মনে হচ্ছে code থেমে গেছে।
কিন্তু আসলে JavaScript পুরো application থামিয়ে দেয় না।
শুধু ওই function-এর ভিতরের next line-এর ex*****on অপেক্ষা করে।
---
তাহলে পার্থক্যটা কোথায়?
অনেকে বলে,
"Callback পুরোনো, Async/Await নতুন।"
এভাবে বললে ভুল হবে।
আসল পার্থক্য হলো,
→ Callback ব্যবহার হয় যখন কোনো function-এর কাজ শেষ হলে আরেকটা function automatically run করাতে চান।
→ Async/Await ব্যবহার হয় Promise-based asynchronous code-কে এমনভাবে লেখার জন্য, যাতে code পড়তে একদম normal synchronous code-এর মতো লাগে।
---
তাহলে কোনটা কোথায় ব্যবহার করবেন?
ধরুন...
Button-এ click detect করবেন?
Callback!
button.addEventListener("click", () => {
console.log("Clicked!");
});
কারণ event কখন হবে আপনি জানেন না।
Event হলে callback run হবে।
---
API থেকে data আনবেন?
Async/Await!
const res = await fetch("/users");
const data = await res.json();
কারণ এতে code অনেক clean হয়, error handle করাও সহজ হয়।
---
তাহলে এখন কেউ জিজ্ঞেস করলে,
Callback আর Async/Await-এর মধ্যে difference কী?
শুধু বলবেন,
"একটা পুরোনো, একটা নতুন?"
না!
বলবেন,
Callback হলো এমন একটি function যেটি অন্য function-এর কাজ শেষ হওয়ার পরে execute হয়। আর Async/Await হলো Promise-based asynchronous code-কে আরও readable, clean এবং maintainable করার একটি syntax।
মজার বিষয় হলো,
Async/Await শিখলেও Callback এড়াতে পারবেন না।
কারণ addEventListener(), setTimeout(), setInterval(), এসব জায়গায় আজও Callback-ই use করতে হয়!