return
উদ্দেশ্য প্রত্যাখ্যান পর ফাংশন সঞ্চালনের বিনষ্ট, এবং এটি পরে কোড সঞ্চালনের প্রতিরোধ করা হয়।
function divide(numerator, denominator) {
return new Promise((resolve, reject) => {
if (denominator === 0) {
reject("Cannot divide by 0");
return; // The function execution ends here
}
resolve(numerator / denominator);
});
}
এই ক্ষেত্রে এটি resolve(numerator / denominator);
কার্যকর করতে বাধা দেয় , যা কঠোরভাবে প্রয়োজন হয় না। তবে ভবিষ্যতে কোনও সম্ভাব্য ফাঁদ আটকাতে মৃত্যুদণ্ড কার্যকর করা স্থগিত করা আরও ভাল। এছাড়াও, অযথা চালানো কোডটি রোধ করা ভাল অভ্যাস।
পটভূমি
প্রতিশ্রুতি 3 টির মধ্যে একটিতে হতে পারে:
- মুলতুবি - প্রাথমিক অবস্থা। মুলতুবি থেকে আমরা অন্য রাজ্যের যে কোনও একটিতে যেতে পারি
- সম্পন্ন - সফল অপারেশন
- প্রত্যাখ্যান - ব্যর্থ অপারেশন
যখন কোনও প্রতিশ্রুতি পূর্ণ হয় বা প্রত্যাখ্যাত হয়, তা অনির্দিষ্টকালীন (নিষ্পত্তি) এ অবস্থায় থাকবে। সুতরাং, একটি প্রতিশ্রুতি প্রত্যাখ্যান করা বা প্রত্যাখ্যাত প্রতিশ্রুতি পূরণ করা কার্যকর হবে না।
এই উদাহরণ স্নিপেট দেখায় যে প্রতিশ্রুতি প্রত্যাখ্যান হওয়ার পরেও তা পূরণ হয়েছিল, তবে তা প্রত্যাখ্যান করেই রইল।
function divide(numerator, denominator) {
return new Promise((resolve, reject) => {
if (denominator === 0) {
reject("Cannot divide by 0");
}
resolve(numerator / denominator);
});
}
divide(5,0)
.then((result) => console.log('result: ', result))
.catch((error) => console.log('error: ', error));
তাহলে আমাদের ফিরতে হবে কেন?
যদিও আমরা কোনও নিষ্পত্তির প্রতিশ্রুতি স্থিতি পরিবর্তন করতে পারি না, প্রত্যাখ্যান করা বা সমাধান করা ফাংশনের বাকী ক্রিয়াকলাপ বন্ধ করে দেয় না। ফাংশনে এমন কোড থাকতে পারে যা বিভ্রান্তিকর ফলাফল তৈরি করবে। উদাহরণ স্বরূপ:
function divide(numerator, denominator) {
return new Promise((resolve, reject) => {
if (denominator === 0) {
reject("Cannot divide by 0");
}
console.log('operation succeeded');
resolve(numerator / denominator);
});
}
divide(5, 0)
.then((result) => console.log('result: ', result))
.catch((error) => console.log('error: ', error));
এমনকি যদি ফাংশনটিতে এখনই এই জাতীয় কোড না রয়েছে তবে এটি সম্ভাব্য ভবিষ্যতের ফাঁদ তৈরি করে। ভবিষ্যতের রিফ্যাক্টর এই সত্যটি অগ্রাহ্য করতে পারে যে প্রতিশ্রুতি প্রত্যাখ্যানের পরে কোডটি এখনও কার্যকর করা হয়েছে, এবং এটি ডিবাগ করা শক্ত হবে।
সমাধান / প্রত্যাখ্যানের পরে কার্যকর করা বন্ধ করা:
এটি স্ট্যান্ডার্ড জেএস নিয়ন্ত্রণ প্রবাহ স্টাফ।
resolve
/ এর পরে ফিরে আসুন reject
:
function divide(numerator, denominator) {
return new Promise((resolve, reject) => {
if (denominator === 0) {
reject("Cannot divide by 0");
return;
}
console.log('operation succeeded');
resolve(numerator / denominator);
});
}
divide(5, 0)
.then((result) => console.log('result: ', result))
.catch((error) => console.log('error: ', error));
resolve
/ reject
- দিয়ে ফিরে আসুন যেহেতু কলব্যাকের ফেরতের মান উপেক্ষা করা হয়, তাই আমরা প্রত্যাখ্যান / সমাধানের বিবৃতি ফিরিয়ে একটি লাইন সংরক্ষণ করতে পারি:
function divide(numerator, denominator) {
return new Promise((resolve, reject) => {
if (denominator === 0) {
return reject("Cannot divide by 0");
}
console.log('operation succeeded');
resolve(numerator / denominator);
});
}
divide(5, 0)
.then((result) => console.log('result: ', result))
.catch((error) => console.log('error: ', error));
- একটি / অন্য ব্লক ব্যবহার করে:
function divide(numerator, denominator) {
return new Promise((resolve, reject) => {
if (denominator === 0) {
reject("Cannot divide by 0");
} else {
console.log('operation succeeded');
resolve(numerator / denominator);
}
});
}
divide(5, 0)
.then((result) => console.log('result: ', result))
.catch((error) => console.log('error: ', error));
return
কোডটি চাটুকার হওয়ায় আমি বিকল্পগুলির একটির ব্যবহার করতে পছন্দ করি ।