Async ফাংশন
async ফাংশন ডিক্লেয়ারেশন একটি অ্যাসিঙ্ক্রোনাস ফাংশন ডিফাইন করে। এটি একটি AsyncFunction অবজেক্ট রিটার্ন করে।
সিনট্যাক্স
async function functionName([param[, param[, ... param]]]) {
// স্টেটমেন্টস
}
উদাহরণ: ৫ সেকেন্ড পরে ফলাফল
<html>
<body>
<script>
function displayFunction(num) {
return new Promise(resolve => {
setTimeout(() => {
resolve(num);
}, 5000);
});
}
async function add2(num) {
const x = displayFunction(7);
const y = displayFunction(5);
return num * await x * await y;
}
add2(15).then(result => {
document.write("Multiplication Result (after 5 seconds): " + result);
});
</script>
</body>
</html>
Async/Await মূল ধারণা
| কীওয়ার্ড | কাজ |
|---|---|
| async | ফাংশনকে অ্যাসিঙ্ক্রোনাস বানায়, Promise রিটার্ন করে |
| await | Promise রেজল্ভ হওয়া পর্যন্ত এক্সিকিউশন পজ করে |
| Promise | ভবিষ্যতের মান রিপ্রেজেন্ট করে (pending/fulfilled/rejected) |
ত্রুটি হ্যান্ডলিং
async function fetchData() {
try {
const response = await fetch('/api/data');
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
return data;
} catch (error) {
console.error("Fetch failed:", error);
throw error; // Re-throw বা ডিফল্ট মান রিটার্ন
}
}
প্যারালল এক্সিকিউশন
// সিরিয়াল (ধীর) - ৫+৫=১০ সেকেন্ড
const x = await displayFunction(7);
const y = await displayFunction(5);
// প্যারালল (দ্রুত) - ৫ সেকেন্ড
const [x, y] = await Promise.all([
displayFunction(7),
displayFunction(5)
]);