JavaScript Promises

একটি Promise একটি asynchronous টাস্কের ফলাফল প্রকাশ করে।

আপনি API কল, ডাটাবেস কুয়েরি এবং ফাইল রিডিংয়ের জন্য Promise ব্যবহার করেন।

একটি Promise-এর তিনটি স্টেট (state) থাকে:

  • Pending: টাস্কটি এখনও চলছে।
  • Fulfilled: টাস্কটি সফলভাবে শেষ হয়েছে।
  • Rejected: টাস্কটি একটি ত্রুটির কারণে ব্যর্থ হয়েছে।

এর গঠনটি এরকম:

const promise = new Promise((resolve, reject) => {
  // The executor runs immediately
});

আপনি এই মেথডগুলোর মাধ্যমে ফলাফল হ্যান্ডেল করতে পারেন:

  • .then(): যখন promise সফল হয় তখন এটি চলে।
  • .catch(): যখন promise ব্যর্থ হয় তখন এটি চলে।
  • .finally(): ফলাফল যাই হোক না কেন, টাস্ক শেষ হলে এটি চলে।

মনে রাখার মতো গুরুত্বপূর্ণ কিছু নিয়ম:

  • প্রথম ফলাফলটিই কার্যকর হয়। আপনি যদি resolve() এবং তারপর reject() কল করেন, তবে resolve-টিই জয়ী হবে।
  • Executor ফাংশনটি synchronously চলে।
  • .then() ব্যবহার করার চেয়ে async এবং await ব্যবহার করলে আপনার কোড পড়া আরও সহজ হয়।

একাধিক promise হ্যান্ডেল করা:

  • Promise.all(): এটি একটি fail-fast পদ্ধতি অনুসরণ করে। যদি একটি promise ব্যর্থ হয়, তবে পুরো গ্রুপটিই ব্যর্থ হয়।
  • Promise.allSettled(): এটি প্রতিটি promise শেষ হওয়া পর্যন্ত অপেক্ষা করে। কিছু টাস্ক ব্যর্থ হলেও এটি ফলাফল প্রদান করে।

সারসংক্ষেপ:

  • Promise: একটি asynchronous ফলাফল হ্যান্ডলার।
  • resolve: সফলতার নির্দেশক।
  • reject: ব্যর্থতার নির্দেশক।
  • async/await: Promise লেখার একটি পরিচ্ছন্ন পদ্ধতি।
  • Promise.all: প্রথম ত্রুটির ক্ষেত্রেই থেমে যায়।
  • Promise.allSettled: সমস্ত টাস্ক সম্পন্ন করে।

উৎস: https://dev.to/malik786/javascript-promises-2hn4