জাভাস্ক্রিপ্ট অ্যাসিঙ্ক/অ্যাওয়েট (JS Async/Await)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট অ্যাসিঙ্ক (JS Async) |
264
264

async এবং await জাভাস্ক্রিপ্টের এমন দুটি কিওয়ার্ড যা অ্যাসিঙ্ক্রোনাস কোড লেখার পদ্ধতিকে সহজ এবং পাঠযোগ্য করে তোলে। এই কিওয়ার্ডগুলো Promise এর সাথে ব্যবহার করা হয় এবং এটি প্রমিসের ফলাফল পেতে then() বা catch() মেথডের পরিবর্তে সিনক্রোনাস কোডের মতো কাজ করতে সাহায্য করে।


অ্যাসিঙ্ক (async) কিওয়ার্ড

async কিওয়ার্ড একটি ফাংশনের আগে ব্যবহার করা হয়, যা সেই ফাংশনটিকে একটি প্রমিস রিটার্ন করতে বাধ্য করে। এটি একটি অপ্রত্যাশিত রিটার্ন ভ্যালু (যেমন একটি সিঙ্ক্রোনাস ফাংশনে আউটপুট) প্রত্যাশিত করতে সাহায্য করে।

উদাহরণ:

async function fetchData() {
    return "ডেটা ফেচ হয়েছে";
}

fetchData().then(function(result) {
    console.log(result);  // আউটপুট: ডেটা ফেচ হয়েছে
});

এখানে, fetchData() একটি async ফাংশন, যা একটি প্রমিস রিটার্ন করে, এবং .then() ব্যবহার করে আমরা এর রেজাল্ট পেতে পারি।


অ্যাওয়েট (await) কিওয়ার্ড

await কিওয়ার্ডটি শুধুমাত্র async ফাংশনের মধ্যে ব্যবহার করা যেতে পারে। এটি একটি প্রমিসের ফলাফল পাওয়ার জন্য অপেক্ষা করে এবং প্রমিস সফলভাবে পূর্ণ হলে পরবর্তী কোডটি এক্সিকিউট হয়। এর মাধ্যমে আপনি প্রমিসের ফলাফল পেতে then() ব্যবহারের তুলনায় কোডকে আরো পরিষ্কার এবং পাঠযোগ্য করতে পারেন।

উদাহরণ:

async function fetchData() {
    let result = await new Promise(resolve => {
        setTimeout(() => {
            resolve("ডেটা ফেচ হয়েছে");
        }, 2000);
    });
    console.log(result);  // আউটপুট: ডেটা ফেচ হয়েছে
}

fetchData();

এখানে, await প্রমিসের ফলাফল পাওয়া না যাওয়া পর্যন্ত পরবর্তী কোড এক্সিকিউট হওয়ার আগে অপেক্ষা করে।


অ্যাসিঙ্ক/অ্যাওয়েটের সুবিধা

সহজ এবং পরিষ্কার কোড

async এবং await ব্যবহার করলে প্রমিস হ্যান্ডলিং অনেক সহজ হয়ে যায়। এটি কোডকে আরও রিডেবল এবং মেইনটেইনেবল করে, কারণ এটি একাধিক .then() বা .catch() এর পরিবর্তে একটি সিনক্রোনাস অভ্যেসে কোড লেখা সম্ভব করে।


ট্রাই/ক্যাচ ব্লক ব্যবহার

async ফাংশনের মধ্যে try/catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিংও করা যায়। এটি কোডের মধ্যে ত্রুটি ঘটলে সহজে তাকে ক্যাচ করতে সাহায্য করে।

async function fetchData() {
    try {
        let result = await new Promise((resolve, reject) => {
            let success = false;
            if (success) {
                resolve("ডেটা ফেচ হয়েছে");
            } else {
                reject("ডেটা ফেচ করতে সমস্যা হয়েছে");
            }
        });
        console.log(result);
    } catch (error) {
        console.log(error);  // আউটপুট: ডেটা ফেচ করতে সমস্যা হয়েছে
    }
}

fetchData();

এখানে try/catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডল করা হয়েছে।


অ্যাসিঙ্ক/অ্যাওয়েটের ব্যবহার

একাধিক অ্যাসিঙ্ক ফাংশন

একাধিক অ্যাসিঙ্ক ফাংশন একের পর এক এক্সিকিউট করতে হলে, await ব্যবহার করা যায়। তবে যদি আপনি একাধিক অ্যাসিঙ্ক ফাংশন একসাথে চালাতে চান এবং ফলাফল পেতে চান, তাহলে Promise.all() ব্যবহার করা উচিত।

একাধিক অ্যাসিঙ্ক ফাংশন একসাথে:

async function fetchData1() {
    return "ডেটা ১ ফেচ হয়েছে";
}

async function fetchData2() {
    return "ডেটা ২ ফেচ হয়েছে";
}

async function fetchData() {
    let result1 = await fetchData1();
    let result2 = await fetchData2();
    console.log(result1);  // আউটপুট: ডেটা ১ ফেচ হয়েছে
    console.log(result2);  // আউটপুট: ডেটা ২ ফেচ হয়েছে
}

fetchData();

এখানে, প্রথম fetchData1() এবং পরে fetchData2() ফাংশনগুলো একের পর এক এক্সিকিউট হয়।


একাধিক অ্যাসিঙ্ক ফাংশন একসাথে Promise.all() দিয়ে:

async function fetchData1() {
    return "ডেটা ১ ফেচ হয়েছে";
}

async function fetchData2() {
    return "ডেটা ২ ফেচ হয়েছে";
}

async function fetchAllData() {
    let results = await Promise.all([fetchData1(), fetchData2()]);
    console.log(results);  // আউটপুট: [ 'ডেটা ১ ফেচ হয়েছে', 'ডেটা ২ ফেচ হয়েছে' ]
}

fetchAllData();

এখানে, Promise.all() দুটি অ্যাসিঙ্ক ফাংশন একসাথে চালিয়ে তাদের ফলাফল পাওয়া হয়েছে।


সারাংশ

async এবং await জাভাস্ক্রিপ্টে অ্যাসিঙ্ক্রোনাস কোড লেখার একটি আধুনিক এবং সহজ উপায়। async ফাংশন একটি প্রমিস রিটার্ন করে এবং await কিওয়ার্ডটি প্রমিসের ফলাফল পাওয়ার জন্য অপেক্ষা করে, যা কোডের পাঠযোগ্যতা উন্নত করে। এটি try/catch ব্লক দ্বারা ত্রুটি হ্যান্ডলিং করতে সাহায্য করে এবং একাধিক অ্যাসিঙ্ক ফাংশন সহজে একত্রে চালাতে সাহায্য করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion