আমি এই বিষয়ে বেশ কয়েকটি নিবন্ধ পড়েছি, তবে এখনও Promise.rejectত্রুটি নিক্ষেপ করার মধ্যে কোনও পার্থক্য রয়েছে কিনা তা আমার কাছে স্পষ্ট নয় । উদাহরণ স্বরূপ,
Promise.reject ব্যবহার করা হচ্ছে Using
return asyncIsPermitted()
.then(function(result) {
if (result === true) {
return true;
}
else {
return Promise.reject(new PermissionDenied());
}
});
নিক্ষেপ ব্যবহার
return asyncIsPermitted()
.then(function(result) {
if (result === true) {
return true;
}
else {
throw new PermissionDenied();
}
});
আমার পছন্দটি throwকেবল এটি খাটো হওয়ার কারণে ব্যবহার করা, তবে ভাবছিলাম যে একে অপরের উপরের কোনও সুবিধা আছে কিনা।
throwহ'ল এটি যদি একটি সেটটাইমআউট হিসাবে অ্যাসিক্রোনাস কলব্যাকের মধ্যে থেকে ফেলে দেওয়া হয় তবে এটি প্রত্যাখ্যানিত প্রতিশ্রুতিতে পরিণত হয় না। jsfiddle.net/m07van33 @ ব্লন্ডি আপনার উত্তরটি সঠিক ছিল।
rejectআমার প্যারাম তালিকা থেকে এটিকে বাদ দিতে পারি।
.then()হ্যান্ডলার নিক্ষিপ্ত ব্যতিক্রম ক্যাচ এবং একটি প্রত্যাখ্যাত প্রতিশ্রুতি সেটিকে স্বয়ংক্রিয়ভাবে সক্রিয়। যেহেতু আমি পড়েছি যে নিক্ষিপ্ত ব্যতিক্রমগুলি কার্যকর করতে খুব দ্রুত হয় না, তাই আমি অনুমান করব যে প্রত্যাখ্যাত প্রতিশ্রুতি ফিরিয়ে দেওয়া কার্যকর করতে কিছুটা দ্রুত হতে পারে তবে এটি যদি জানা গুরুত্বপূর্ণ ছিল তবে আপনাকে একাধিক আধুনিক ব্রাউজারে একটি পরীক্ষা করতে হবে। আমি ব্যক্তিগতভাবে ব্যবহার করিthrowকারণ আমি পাঠযোগ্যতা পছন্দ করি।