জাভাস্ক্রিপ্টে প্রমিসে ব্যতিক্রমী পরিস্থিতি
আসুন এখন শিখি কিভাবে প্রমিসের ভিতরে ঘটে যাওয়া ব্যতিক্রমী পরিস্থিতি পরিচালনা করতে হয়। এমন পরিস্থিতি ঘটলে আমরা অবশ্যই প্রমিসটিকে প্রত্যাখ্যান করতে হবে প্রত্যাখ্যানের একটি বিশেষ ফাংশন ব্যবহার করে, যা স্বয়ংক্রিয়ভাবে প্রমিস ফাংশনের দ্বিতীয় প্যারামিটারে চলে আসে:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
...
}, 3000);
});
প্রমিস ফাংশনের ভিতরে আমাদের অবশ্যই কল করতে হবে
resolve, যদি সবকিছু স্বাভাবিকভাবে চলে, অথবা
reject, যদি কোন ব্যতিক্রমী
পরিস্থিতি দেখা দেয়:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve([1, 2, 3, 4, 5]); // প্রমিসের ডেটা
} else {
reject('error in promise'); // আপনার ত্রুটি পাঠ্য
}
}, 3000);
});
তারপর then মেথডে আপনাকে অবশ্যই
একটি নয়, দুটি ফাংশন প্যারামিটার হিসেবে পাস করতে হবে: প্রথমটি কাজ করবে,
যদি প্রমিসটি স্বাভাবিকভাবে কাজ করে (রেজলভ হয়েছে),
এবং দ্বিতীয়টি - যদি ত্রুটি সহ কাজ করে (রিজেক্ট হয়েছে):
promise.then(
function(result) {
console.log(result); // প্রমিসের ফলাফল দেখাবে
},
function(error) {
console.log(error); // ত্রুটি পাঠ্য দেখাবে
}
);
একটি নিয়ম হিসাবে, উপরে প্রদর্শিত কোডটি লেখা হয় আরও কম্প্যাক্টভাবে, এভাবে:
promise.then(function(result) {
console.log(result); // প্রমিসের ফলাফল দেখাবে
}, function(error) {
console.log(error); // ত্রুটি পাঠ্য দেখাবে
});
একটি অ্যাসিঙ্ক্রোনাস কোড তৈরি করুন, যা 0 থেকে 5 পর্যন্ত
র্যান্ডম সংখ্যা তৈরি করবে।
এটিকে একটি প্রমিসে মোড়ান। প্রমিসটি যেন তার ফলাফল হিসেবে
এককে জেনারেট করা সংখ্যা দিয়ে ভাগ করার ফলাফল ফেরত দেয়।
প্রমিসটি যেন একটি ত্রুটি সহ সম্পন্ন হয়,
যদি শূন্য দিয়ে ভাগ ঘটে, এবং সাফল্যের সাথে
অন্যান্য সকল ক্ষেত্রে।