Promise.try এখন বেসলাইন নতুনভাবে উপলব্ধ

জেরেমি ওয়াগনার
Jeremy Wagner

প্রকাশিত: 17 জানুয়ারী, 2025

ওয়েবে অ্যাসিঙ্ক্রোনাস কাজ করা চ্যালেঞ্জিং হতে পারে—এবং ওয়েবে যা করা হয় তার অনেকটাই অ্যাসিঙ্ক্রোনিসিটি জড়িত। এতে কল fetch বা অন্যান্য অ্যাসিঙ্ক্রোনাস ক্রিয়াকলাপ জড়িত হোক না কেন, আপনি কীভাবে সেই কাজটি করবেন ব্রাউজারগুলি সহজ করে তোলে যখন অন্তর্নির্মিত পদ্ধতিগুলি শক্তিশালী ত্রুটি পরিচালনা প্রদান করে। এটি ইতিমধ্যে then , catch এবং finally পদ্ধতি ব্যবহার করে প্রতিশ্রুতির জন্য সরবরাহ করা হয়েছে।

তা সত্ত্বেও, আপনি যেভাবে আপনার অ্যাপ্লিকেশনের কোডবেসকে আর্কিটেক্ট করবেন তা নমনীয় হওয়া উচিত এবং আপনার অ্যাপ্লিকেশনে আপনি যা করবেন তা অবশ্যই অ্যাসিঙ্ক্রোনাস নয়। কখনও কখনও আপনি একটি কলব্যাকের ফলাফল এমনভাবে পরিচালনা করতে চাইতে পারেন যা সহজ হবে যদি এটি কোন ব্যাপার না যে আপনি একটি Promise পাস করা একটি কলব্যাক সিঙ্ক্রোনাস কিনা। Promise.try হল একটি পদ্ধতি যা এখন সমস্ত প্রধান ব্রাউজার ইঞ্জিনে উপলব্ধ যা বিকাশকারীদের জন্য এটিকে সহজ করে, যার মানে হল এটি এখন বেসলাইন নতুনভাবে উপলব্ধ৷

Promise.try কি এবং এটি কিভাবে কাজ করে?

Promise.try হল একটি সুবিধাজনক পদ্ধতি যা আপনি Promise.resolve ব্যবহার করলে সিঙ্ক্রোনাস কলব্যাক ফাংশনগুলির জন্য ত্রুটি পরিচালনা সহজ করে তোলে:

// If the callback is synchronous and it throws
// an exception, the error won't be caught here:
new Promise(resolve => resolve(callback());

// But it will be here:
Promise.try(callback);

তারপর, then , catch এবং finally পদ্ধতিগুলি ব্যবহার করে, একটি Promise রেজোলিউশন বা প্রত্যাখ্যান পরিচালনা করুন:

Promise.try(callback)
  .then(result => console.log(result))
  .catch(error => console.log(error))
  .finally(() => console.log("All settled."));

যদি আপনার কলব্যাক ফাংশনে আর্গুমেন্ট থাকে? আপনি দুটি উপায়ে এটি পরিচালনা করতে পারেন:

// This creates an extra closure, but works:
Promise.try(() => callback(param1, param2));

// This doesn't create an extra closure, and still works:
Promise.try(callback, param1, param2);

Promise.try ব্যবহার করার প্রাথমিক সুবিধা হল যে এটি আপনাকে প্রতিশ্রুতিগুলিকে সমানভাবে ব্যবহার করতে দেয় আপনি এটিতে যে কলব্যাকটি পাস করেন তা সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাস তা নির্বিশেষে। এর মানে হল, একটি ইউটিলিটি ফাংশনের ক্ষেত্রে যা আপনার কোডে ব্যাপকভাবে ব্যবহৃত Promise কলব্যাক পাস করে, Promise.try ব্যবহার করে আপনি এটিতে পাস করা যেকোনো কলব্যাকের জন্য সঠিক ত্রুটি পরিচালনা নিশ্চিত করে। অতিরিক্ত তথ্য এবং অন্যান্য সম্ভাব্য উদ্বেগ বা ব্যবহারের ক্ষেত্রে, Promise.try জন্য MDN ডকুমেন্টেশন দেখুন।

উপসংহার

এখন যেহেতু Promise.try নতুনভাবে উপলব্ধ বেসলাইনে পৌঁছেছে, আপনার সমস্ত প্রধান ব্রাউজার ইঞ্জিনে এটি ব্যবহার করতে সক্ষম হওয়া উচিত। সময় অতিবাহিত হওয়ার সাথে সাথে, আপনার আশা করা উচিত যে এটি ওয়েব প্ল্যাটফর্মের একটি স্থিতিশীল এবং ইন্টারঅপারেবল অংশ হবে এমন আত্মবিশ্বাসের সাথে আপনার ওয়েব অ্যাপ্লিকেশনগুলিতে Promise.try ব্যবহার করতে সক্ষম হবেন।