কম্পিউটার টিউটোরিয়াল

JavaScript-এ async/await ব্যবহার করে ফাংশন ইটারেটিভলি রান করা

JavaScript-এ async/await এবং লুপ কম্বাইন করে অ্যাসিঙ্ক্রোনাস ফাংশনগুলো ক্রমাগত (সিকোয়েনশিয়ালি) রান করা যায়। প্রতিটি অপারেশন আগেরটি শেষ হওয়ার পর শুরু হয়।

কোড উদাহরণ

async function runIteratively(iterations) {
    for (let i = 1; i <= iterations; i++) {
        await demo("Call Demo1() - Iteration " + i);
        await demo("Call Demo2() - Iteration " + i);
    }
}

async function demo(message) {
    console.log(message);
    // সিমুলেটেড অ্যাসিঙ্ক ওপারেশন (যেমন API কল)
    await new Promise(resolve => setTimeout(resolve, 100));
}

// ১০ বার চালান
runIteratively(10);

চলানোর পদ্ধতি

  1. কোডটি asyncLoop.js নামে সংরক্ষণ করুন।
  2. টার্মিনালে চালান: node asyncLoop.js

আউটপুট

Call Demo1() - Iteration 1
Call Demo2() - Iteration 1
Call Demo1() - Iteration 2
Call Demo2() - Iteration 2
...
Call Demo1() - Iteration 10
Call Demo2() - Iteration 10

প্যারালেল রান (তুলনা)

যদি অপারেশনগুলো স্বতন্ত্র হয়, Promise.all() দিয়ে প্যারালেল করলে দ্রুত হবে:

async function runParallel(iterations) {
    const promises = [];
    for (let i = 1; i <= iterations; i++) {
        promises.push(demo("Demo1 - " + i));
        promises.push(demo("Demo2 - " + i));
    }
    await Promise.all(promises); // সব একসাথে চালু, সব শেষ হওয়ায় কন্টিনিউ
}

এরর হ্যান্ডলিং

async function safeIterativeRun(tasks) {
    for (const task of tasks) {
        try {
            await task();
        } catch (error) {
            console.error("টাস্ক ফেইল:", error);
            // continue বা break নিয়ে সিদ্ধান্ত নিন
        }
    }
}

ব্যবহার ক্ষেত্র

  • ব্যাচ API রিকোয়েস্ট (রেট লিমিট এড়াতে)
  • ফাইল প্রসেসিং (এক تلو এক)
  • ডেটাবেজ মাইগ্রেশন স্ক্রিপ্ট
  • টেস্ট অটোমেশন (সিকোয়েনশিয়াল টেস্ট কেস)

দ্রষ্টব্য

  • forEach এর সাথে await কাজ করে না (for..of ব্যবহার করুন)।
  • সিকোয়েনশিয়াল = ধীর কিন্তু সুরক্ষিত (রেস কন্ডিশন নেই)।
  • প্যারালেল = দ্রুত কিন্তু রিসোর্স বেশি লাগে।
  1. জাভাস্ক্রিপ্ট দিয়ে টেক্সট টগল করা

  2. জাভাস্ক্রিপ্ট call() মেথড আর্গুমেন্টসহ ব্যাখ্যা

  3. জাভাস্ক্রিপ্টে call() এবং apply() দিয়ে ফাংশন আহ্বান করা

  4. জাভাস্ক্রিপ্টে 'onclick'-এ দুটি বা অধিক ফাংশন চালানো