जावास्क्रिप्ट async / प्रतीक्षा

इस ट्यूटोरियल में, आप उदाहरणों की मदद से जावास्क्रिप्ट async / प्रतीक्षा खोजशब्दों के बारे में जानेंगे।

आप asyncएक फ़ंक्शन के साथ कीवर्ड का उपयोग यह दर्शाने के लिए करते हैं कि फ़ंक्शन एक एसिंक्रोनस फ़ंक्शन है। Async फ़ंक्शन एक वादा लौटाता है।

asyncफ़ंक्शन का सिंटैक्स है:

 async function name(parameter1, parameter2,… paramaterN) ( // statements )

यहाँ,

  • नाम - समारोह का नाम
  • पैरामीटर - पैरामीटर जो फ़ंक्शन को पास किए जाते हैं

उदाहरण: Async फ़ंक्शन

 // async function example async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f(); 

आउटपुट

 Async फ़ंक्शन।

उपरोक्त कार्यक्रम में, asyncफ़ंक्शन का उपयोग यह दिखाने के लिए किया जाता है कि फ़ंक्शन अतुल्यकालिक है।

चूंकि यह फ़ंक्शन एक वादा लौटाता है, आप then()इस तरह से चाइनिंग विधि का उपयोग कर सकते हैं :

 async function f() ( console.log('Async function.'); return Promise.resolve(1); ) f().then(function(result) ( console.log(result) ));

आउटपुट

 Async फ़ंक्शन 1

उपरोक्त कार्यक्रम में, f()फ़ंक्शन हल then()हो जाता है और विधि निष्पादित हो जाती है।

जावास्क्रिप्ट कीवर्ड का इंतजार है

awaitकीवर्ड अंदर प्रयोग किया जाता है asyncअतुल्यकालिक ऑपरेशन के लिए प्रतीक्षा करने के लिए कार्य करते हैं।

प्रतीक्षा का उपयोग करने का सिंटैक्स है:

 let result = await promise;

awaitजब तक वादा परिणाम (संकल्प या अस्वीकार) मान वापस नहीं लेता तब तक एस्क्सेस फ़ंक्शन का उपयोग रोक दिया जाता है। उदाहरण के लिए,

 // a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( // wait until the promise resolves let result = await promise; console.log(result); console.log('hello'); ) // calling the async function asyncFunc();

आउटपुट

 प्रॉमिस हल होलो

उपरोक्त कार्यक्रम में, एक Promiseवस्तु बनाई जाती है और यह 4000 मिलीसेकंड के बाद हल हो जाती है । यहां, asyncFunc()फ़ंक्शन का उपयोग करके asyncफ़ंक्शन लिखा गया है।

awaitवादा के लिए कीवर्ड प्रतीक्षा करता है पूरा (संकल्प या अस्वीकृत) किया जाना है।

 let result = await promise;

इसलिए, परिणाम चर के लिए वादा मूल्य उपलब्ध होने के बाद ही हैलो प्रदर्शित किया जाता है।

उपरोक्त कार्यक्रम में, यदि awaitउपयोग नहीं किया जाता है , तो प्रॉमिस हल होने से पहले हैलो प्रदर्शित होता है।

Async / प्रतीक्षा कार्य का कार्य

नोट : आप awaitकेवल Async फ़ंक्शन के अंदर उपयोग कर सकते हैं ।

Async फ़ंक्शन, अतुल्यकालिक विधि को एक समान रूप से सिंक्रोनस तरीके से निष्पादित करने की अनुमति देता है। हालांकि ऑपरेशन अतुल्यकालिक है, ऐसा लगता है कि ऑपरेशन को सिंक्रोनस तरीके से निष्पादित किया जाता है।

यह उपयोगी हो सकता है अगर कार्यक्रम में कई वादे हों। उदाहरण के लिए,

 let promise1; let promise2; let promise3; async function asyncFunc() ( let result1 = await promise1; let result2 = await promise2; let result3 = await promise3; console.log(result1); console.log(result1); console.log(result1); )

उपरोक्त कार्यक्रम में, awaitप्रत्येक वादा पूरा होने की प्रतीक्षा करता है।

गलती संभालना

asyncफ़ंक्शन का उपयोग करते समय , आप एक तुल्यकालिक तरीके से कोड लिखते हैं। और आप catch()त्रुटि को पकड़ने के लिए विधि का उपयोग भी कर सकते हैं । उदाहरण के लिए,

 asyncFunc().catch( // catch error and do something )

दूसरा तरीका है कि आप किसी त्रुटि को संभाल सकते हैं try/catchब्लॉक का उपयोग करके । उदाहरण के लिए,

 // a promise let promise = new Promise(function (resolve, reject) ( setTimeout(function () ( resolve('Promise resolved')), 4000); )); // async function async function asyncFunc() ( try ( // wait until the promise resolves let result = await promise; console.log(result); ) catch(error) ( console.log(error); ) ) // calling the async function asyncFunc(); // Promise resolved

उपरोक्त कार्यक्रम में, हमने try/catchत्रुटियों को संभालने के लिए ब्लॉक का उपयोग किया है । यदि कार्यक्रम सफलतापूर्वक चलता है, तो यह tryब्लॉक में जाएगा। और यदि प्रोग्राम एक त्रुटि फेंकता है, तो यह catchब्लॉक में जाएगा।

try/catchविस्तार से जानने के लिए , जावास्क्रिप्ट पर जाएँ / पकड़ने की कोशिश करें।

Async फ़ंक्शन का उपयोग करने के लाभ

  • कॉलबैक या वादे का उपयोग करने की तुलना में कोड अधिक पठनीय है।
  • त्रुटि हैंडलिंग सरल है।
  • डिबगिंग आसान है।

नोट : इन दो खोजशब्दों async/awaitको जावास्क्रिप्ट (ईएस 8) के नए संस्करण में पेश किया गया था। हो सकता है कि कुछ पुराने ब्राउजर्स एस्क् यूनिक / वेट के उपयोग का समर्थन न करें। अधिक जानने के लिए, जावास्क्रिप्ट async / वेट ब्राउज़र समर्थन पर जाएँ।

दिलचस्प लेख...