पब्लिश किया गया: 17 जनवरी, 2025
वेब पर, एक साथ कई काम करना चुनौती भरा हो सकता है. हालांकि, वेब पर कई काम एक साथ नहीं किए जाते. भले ही, इसमें fetch
कॉल या अन्य एसिंक्रोनस ऑपरेशन शामिल हों, ब्राउज़र इस काम को आसान बनाते हैं. ऐसा तब होता है, जब पहले से मौजूद तरीके, गड़बड़ी को ठीक करने के लिए बेहतर तरीके उपलब्ध कराते हैं. then
, catch
, और finally
तरीकों का इस्तेमाल करके, Promises के लिए यह सुविधा पहले से ही उपलब्ध है.
इसके बावजूद, अपने ऐप्लिकेशन के कोडबेस को डिज़ाइन करने का तरीका आसान होना चाहिए. साथ ही, यह ज़रूरी नहीं है कि आपके ऐप्लिकेशन में होने वाली हर कार्रवाई असाइनोक्रोनस हो. कभी-कभी, आपको कॉलबैक के नतीजे को इस तरह से मैनेज करना पड़ सकता है कि यह मायने न रखता हो कि आपने 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
का इस्तेमाल करने का मुख्य फ़ायदा यह है कि इससे आपको एक जैसी तरह से Promises का इस्तेमाल करने की सुविधा मिलती है. भले ही, आपने इसमें सिंक्रोनस या असिंक्रोनस कॉलबैक पास किया हो. इसका मतलब है कि किसी ऐसे यूटिलिटी फ़ंक्शन के मामले में जो आपके कोड में बड़े पैमाने पर इस्तेमाल किए जाने वाले Promise
को कॉलबैक पास करता है, Promise.try
का इस्तेमाल करने से यह पक्का होता है कि आपके पास किसी भी कॉलबैक के लिए गड़बड़ी को ठीक से मैनेज करने का विकल्प है. ज़्यादा जानकारी और अन्य संभावित समस्याओं या इस्तेमाल के उदाहरणों के लिए, Promise.try
के लिए MDN दस्तावेज़ देखें.
नतीजा
Promise.try
अब 'नया वर्शन उपलब्ध है' के बेसलाइन पर पहुंच गया है. इसलिए, अब इसे सभी मुख्य ब्राउज़र इंजन में इस्तेमाल किया जा सकता है. समय के साथ, आपको अपने वेब ऐप्लिकेशन में Promise.try
का इस्तेमाल करने की उम्मीद करनी चाहिए. साथ ही, आपको यह भी भरोसा होना चाहिए कि यह वेब प्लैटफ़ॉर्म का एक स्थिर और इंटरऑपरेबल हिस्सा होगा.