এই অধ্যায়ে শিখবো কীভাবে JavaScript এ অ্যাসিঙ্ক্রোনাস (Asynchronous) কাজ করা হয়, এবং কেন Promise ও Async/Await দরকার হয়।
১. অ্যাসিঙ্ক্রোনাস কোড কী?
-
কিছু কাজ একটু সময় নেয়, যেমন: ডেটা লোড করা, সার্ভার থেকে রেসপন্স পাওয়া।
-
এই কাজগুলো করলে পুরো প্রোগ্রাম থেমে যায় না, বরং অন্য কাজও চলতে থাকে।
-
অ্যাসিঙ্ক্রোনাস কোড এমন কোড যা সময় নিয়ে চলে কিন্তু অন্য কাজকে ব্লক করে না।
২. Callback ফাংশনের সমস্যা
setTimeout(() => {
console.log("৩ সেকেন্ড পরে");
}, 3000);
-
Callback এর মাধ্যমে কাজ হয় কিন্তু অনেক callback থাকলে কোড জটিল ও অসুবিধাজনক হয়, যাকে বলে Callback Hell।
৩. Promise কী?
-
Promise হলো একটা অবজেক্ট যা ভবিষ্যতে একটি কাজ সফল হবে (resolved) না হবে ব্যর্থ (rejected) তা জানায়।
-
Promise দিয়ে অ্যাসিঙ্ক্রোনাস কোড লেখা সহজ হয়।
Promise তৈরি ও ব্যবহার
const promise = new Promise((resolve, reject) => {
let success = true;
if(success) {
resolve("কাজ সফল হয়েছে");
} else {
reject("কাজ ব্যর্থ হয়েছে");
}
});
promise.then((message) => {
console.log(message); // কাজ সফল হয়েছে
}).catch((error) => {
console.log(error);
});
৪. Promise chaining (Promise একসাথে ব্যবহার)
new Promise((resolve, reject) => {
setTimeout(() => resolve(10), 1000);
}).then((result) => {
console.log(result); // 10
return result * 2;
}).then((result2) => {
console.log(result2); // 20
});
৫. Async/Await কী?
-
Async/Await হলো Promise এর আরও সহজ, পরিষ্কার ও সমসাময়িক লেখার পদ্ধতি।
-
asyncফাংশন সবসময় Promise রিটার্ন করে। -
awaitPromise সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করে।
Async/Await উদাহরণ
function wait(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function asyncFunc() {
console.log("শুরু");
await wait(2000); // ২ সেকেন্ড অপেক্ষা করবে
console.log("২ সেকেন্ড পরে");
}
asyncFunc();
৬. Async/Await এর সাথে Error Handling
async function fetchData() {
try {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
console.log(data);
} catch(error) {
console.error("Error:", error);
}
}
fetchData();
৭. সারাংশ
| বিষয় | Promise | Async/Await |
|---|---|---|
| লেখার ধরন | .then(), .catch() |
async ফাংশন + await |
| পড়তে সহজ? | কম | বেশি |
| Error Handling | .catch() |
try/catch ব্লক |
এই অধ্যায়ে আপনি শিখলেন:
-
অ্যাসিঙ্ক্রোনাস কাজের ধারণা
-
Promise কী ও কীভাবে কাজ করে
-
Promise chaining
-
Async/Await এর সুবিধা ও ব্যবহার
-
Error handling Async/Await এ
পরবর্তী অধ্যায়:
অধ্যায় ৩৭: JavaScript Event Loop ও Call Stack
লিখুন: “অধ্যায় ৩৭ শুরু করো” — তাহলে শিখবো JavaScript এর কাজের ভিতরের প্রক্রিয়া।
