কম্পিউটার

দুটি অ্যাসিঙ্ক ফাংশন সম্পূর্ণ হওয়ার পরে কীভাবে একটি ফাংশন চালানো যায় - জাভাস্ক্রিপ্ট


ধরুন আমাদের কাছে দুটি উপাদানের একটি অ্যারে রয়েছে যার উভয় উপাদান দুটি অ্যাসিঙ্ক্রোনাস ফাংশন। আমাদের কিছু কাজ করতে হবে, বলুন কনসোলে কিছু প্রিন্ট করুন (এই প্রশ্নের উদ্দেশ্যে) যখন অ্যাসিঙ্ক ফাংশন উভয়েরই সঞ্চালন সম্পূর্ণ হয়।

কিভাবে আমরা এই চ্যালেঞ্জের কাছে যেতে পারি?

কিছু অ্যাসিঙ্ক্রোনাস টাস্ক সম্পূর্ণ করার পরে কিছু কাজ সম্পাদন করার জন্য মূলত দুটি উপায় রয়েছে -

  • প্রতিশ্রুতি ব্যবহার করে
  • অ্যাসিঙ্ক/ওয়েট ফাংশন ব্যবহার করে

কিন্তু যখন কোডটিতে অনেকগুলি (একের বেশি) অ্যাসিঙ্ক্রোনাস ফাংশন নিয়ে কাজ করা অন্তর্ভুক্ত থাকে তখন আগেরটির Promise.all ফাংশনটি পরবর্তীটির উপর একটি প্রান্ত থাকে৷

উদাহরণ

নিম্নলিখিত কোড -

const arr = [
   new Promise((resolve, reject) => {
      setTimeout(() => {
         resolve('func1 fired!');
      }, 2000);
   }),
   new Promise((resolve, reject) => {
      setTimeout(() => {
         resolve('func2 fired');
      }, 3000);
   })
];
const lastFunction = () => {
   console.log('this function should be fired at the very last');
};
Promise.all([arr[0], arr[1]]).then((resp) => {
   console.log(resp);
   lastFunction();
}).catch((err) => {
   console.log('something unexpected happened');
})

আউটপুট

এটি কনসোলে −

নিম্নলিখিত আউটপুট তৈরি করবে
[ 'func1 fired!', 'func2 fired' ]
this function should be fired at the very last

  1. কিভাবে জাভাস্ক্রিপ্ট ফাংশন ব্যবহার করবেন:একটি ধাপে ধাপে নির্দেশিকা

  2. জাভাস্ক্রিপ্ট কলব্যাক

  3. 'অনক্লিক' জাভাস্ক্রিপ্ট ব্যবহার করার সময় আমি কীভাবে দুই বা ততোধিক ফাংশন চালাব?

  4. জাভাস্ক্রিপ্টে অ্যাসিঙ্ক অপেক্ষার সাথে পুনরাবৃত্তভাবে ফাংশনগুলি কীভাবে চালাবেন?