JavaScript-এ প্রমিস অ্যারেগুলির সাথে কাজ করা
এখন আমরা দুটি দরকারী পদ্ধতি নিয়ে আলোচনা করব,
যা প্রমিস অ্যারেগুলির সাথে কাজ করতে দেয়।
পদ্ধতি Promise.all তাকে একটি অ্যারে হিসাবে
প্রদত্ত সমস্ত প্রমিস সম্পূর্ণ হওয়ার পরে কোড
নির্বাহ করতে দেয়, এবং পদ্ধতি Promise.race
অ্যারের প্রথম প্রমিস লোড হওয়ার জন্য অপেক্ষা করে,
অন্য গুলো বাতিল করে দেয়।
উভয় পদ্ধতি তাদের ফলাফল হিসাবে একটি নতুন প্রমিস
ফেরত দেয়। Promise.all পদ্ধতির জন্য এই প্রমিসের
ফলাফল হবে প্রদত্ত সমস্ত প্রমিসের ফলাফলের একটি অ্যারে
(ফলাফলের ক্রম অ্যারেতে প্রমিসের ক্রমের সাথে মেলে),
এবং Promise.race-এর জন্য - প্রথম কাজ করা প্রমিসের
ফলাফল।
আসুন অনুশীলনে দেখি। ধরা যাক আমাদের কাছে প্রমিসের একটি অ্যারে আছে:
let promises = [
new Promise(resolve => setTimeout(() => resolve(1), 1000)),
new Promise(resolve => setTimeout(() => resolve(2), 2000)),
new Promise(resolve => setTimeout(() => resolve(3), 3000)),
];
আসুন Promise.all ব্যবহার করে আমাদের অ্যারের
সমস্ত প্রমিস লোডিং শেষ হওয়ার জন্য অপেক্ষা করি:
Promise.all(promises).then(function(res) {
console.log(res); // [1, 2, 3] আউটপুট করবে - সমস্ত প্রমিসের ফলাফল
});
এবং এখন Promise.race ব্যবহার করে অ্যারের
প্রথম প্রমিস লোডিং শেষ হওয়ার জন্য অপেক্ষা করি:
Promise.race(promises).then(function(res) {
console.log(res); // 1 আউটপুট করবে - প্রথম সম্পন্ন হওয়া প্রমিসের ফলাফল
});
যদি অ্যারেতে অন্তত একটি প্রমিস প্রত্যাখ্যান করা হয়,
তবে ফলাফল সহ প্রমিসটি অবিলম্বে rejected
অবস্থায় চলে যাবে। তাই, উদ্ভূত ব্যতিক্রমটি স্বাভাবিক,
আপনার ইতিমধ্যে শেখা উপায়ে ধরা যেতে পারে, উদাহরণস্বরূপ,
catch এর মাধ্যমে:
Promise.all(promises).then(function(res) {
console.log(res);
}).catch(function(err) {
console.log(err);
});
একটি ফাংশন তৈরি করুন যা একটি প্রমিস রিটার্ন করে, যার ভিতরে
1 থেকে 10 সেকেন্ডের একটি এলোমেলো বিলম্ব সেট আছে।
প্রমিসটি যেন তার ফলাফল হিসাবে এই বিলম্বটি ফেরত দেয়।
সাইকেল এবং আপনার ফাংশন ব্যবহার করে অ্যারেটি
10 টি প্রমিস দিয়ে পূরণ করুন।
পূর্ববর্তী কাজ থেকে প্রমিসের অ্যারে ব্যবহার করে নিশ্চিত করুন যে প্রথম কাজ করা প্রমিসের ফলাফল কনসোলে আউটপুট হয়।
পূর্ববর্তী কাজ থেকে প্রমিসের অ্যারে ব্যবহার করে নিশ্চিত করুন যে সমস্ত প্রমিসের ফলাফলের যোগফল কনসোলে আউটপুট হয়।