তবে এটি করার যথাযথ উপায় বলে মনে হচ্ছে না ..
এটি প্রকৃতপক্ষে এটি করার সঠিক উপায় (বা এটি করার জন্য কমপক্ষে একটি সঠিক উপায়)। এটি প্রতিশ্রুতির মূল দিক, এগুলি একটি পাইপলাইন এবং পাইপলাইনে বিভিন্ন হ্যান্ডলাররা ডেটা ম্যাসেজ করতে পারে।
উদাহরণ:
const promises = [
new Promise(resolve => setTimeout(resolve, 0, 1)),
new Promise(resolve => setTimeout(resolve, 0, 2))
];
Promise.all(promises)
.then(data => {
console.log("First handler", data);
return data.map(entry => entry * 10);
})
.then(data => {
console.log("Second handler", data);
});
( catch
ব্র্যান্ডটির জন্য হ্যান্ডলার বাদ দেওয়া হয়েছে production উত্পাদন কোডে সর্বদা হয় প্রতিশ্রুতি প্রচার করুন, বা প্রত্যাখ্যান পরিচালনা করবেন))
আমরা যে আউটপুটটি দেখতে পাই তা হ'ল:
প্রথম হ্যান্ডলার [1,2]
দ্বিতীয় হ্যান্ডলার [10,20]
... কারণ প্রথম হ্যান্ডলারটি দুটি প্রতিশ্রুতি ( 1
এবং 2
) হিসাবে অ্যারের হিসাবে সমাধান পেয়ে যায় এবং তারপরে 10 দ্বারা গুণিত প্রতিটিগুলির সাথে একটি নতুন অ্যারে তৈরি করে এবং তা ফেরত দেয়। দ্বিতীয় হ্যান্ডলার প্রথম হ্যান্ডলার যা ফিরে আসে তা পায়।
আপনি যে অতিরিক্ত কাজটি করছেন তা যদি সিনক্রোনাস হয় তবে আপনি এটি প্রথম হ্যান্ডলারের মধ্যেও রাখতে পারেন :
উদাহরণ:
const promises = [
new Promise(resolve => setTimeout(resolve, 0, 1)),
new Promise(resolve => setTimeout(resolve, 0, 2))
];
Promise.all(promises)
.then(data => {
console.log("Initial data", data);
data = data.map(entry => entry * 10);
console.log("Updated data", data);
return data;
});
... তবে এটি যদি অবিচ্ছিন্ন হয় তবে আপনি এটি করতে চাইবেন না কারণ এটি বাসা বেঁধে শেষ হবে এবং বাসা বাঁধে তাড়াতাড়ি হাত থেকে বেরিয়ে আসতে পারে।
reject
প্রাথমিক কাজটির পরে কোনও মান পাওয়া সম্ভব নয়Promise
কি? অথবা চেইনের যে কোনও জায়গায় কোনও ত্রুটি ছুঁড়ে ফেলা কি আপনাকে সেখানে নিয়ে যাবে.catch()
? যদি তা হয়,reject
তবে প্রথম স্থানটির বিন্দুটি কী ? শুধু ত্রুটি ছোঁড়াবেন না কেন? আবার ধন্যবাদ,