JavaScriptIntermediate
Async JavaScript (অ্যাসিংক্রোনাস)
Synchronous বনাম Asynchronous, callback, event loop, setTimeout — async JavaScript-এর ভিত্তি বাংলায়।
11টি অংশবাংলা ভাষায়
JavaScript সাধারণত synchronous — এক কাজ শেষ হলে পরেরটি। কিন্তু API কল, ফাইল পড়া, টাইমারের মতো কাজ দীর্ঘ সময় নেয়। এক্ষেত্রে asynchronous চালনার প্রয়োজন।
Synchronous বনাম Asynchronous
console.log("১");
setTimeout(() => {
console.log("২ (setTimeout)");
}, 0);
console.log("৩");
// Output: ১ → ৩ → ২ (setTimeout)setTimeout টাইমার সেট করে, তাই console.log("৩") আগে চলে। কাজটি ব্লক হয়নি।
Callback
function fetchData(callback) {
setTimeout(() => {
callback({ id: 1, name: "ডেটা" });
}, 1000);
}
fetchData((data) => {
console.log(data.name);
});Event Loop
ব্রাউজার event loop দিয়ে async কাজ সাথেও synchronized রাখে — যতক্ষণ main কল স্ট্যাক খালি হয়, ততক্ষণ queue-এর কাজ থেমে থাকে।
callback-এর সমস্যা
একের ভেতরে আরেকটি callback-কে অনেকবার nesting করলে কোড পড়া কঠিন হয় — এটিকে বলা হয় callback hell। এর সমাধানে আসে Promise ও async/await — পরের অধ্যায়ে।
UI বাঁচান
বড় heavy sync কাজ (বিশাল লুপ) main thread আটকে পেজ freeze করতে পারে। দরকারে async/worker ব্যবহার করুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।