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: সমস্ত টাস্ক সম্পন্ন করে।
