वेळेत JavaScript Async/प्रतीक्षा वर्तन स्पष्ट करणे
आधुनिक JavaScript विकासामध्ये, async/प्रतीक्षा असिंक्रोनस कोड हाताळण्यासाठी एक आवश्यक साधन बनले आहे. त्याची उपयुक्तता असूनही, या तंत्रांचा वापर करणाऱ्या फंक्शन्समध्ये आउटपुटच्या अचूक वेळेचा अंदाज लावताना अनेक विकासकांना गोंधळाचा सामना करावा लागतो. हे विशेषतः Adaface मधील कोडींग मुल्यांकनामध्ये खरे आहे, जेथे असिंक्रोनस ऑपरेशन्सचा प्रवाह समजून घेणे महत्वाचे आहे.
तुम्ही ज्या समस्येवर काम करत आहात ती दोन असिंक्रोनस फंक्शन्स दाखवते ज्यामध्ये वरवर समान वर्तन आहे, परंतु वेळेच्या दृष्टीने भिन्न परिणाम आहेत. पहिल्या दृष्टीक्षेपात, दोन्ही फंक्शन्सला 10 सेकंद लागतील असे दिसते, परंतु वास्तविक उत्तर अनेक विकासकांना आश्चर्यचकित करते, कारण त्यात आश्वासने कशी सोडवली जातात याची सखोल माहिती असते.
या लेखाचे उद्दीष्ट आहे की तुम्हाला कोडमध्ये चालणे, कसे ते खाली खंडित करणे async आणि प्रतीक्षा करा यांत्रिकी कार्य करते, तसेच वचन निराकरणाचा क्रम अंतिम निकालावर कसा परिणाम करतो. याच्या शेवटी, तुम्हाला असिंक्रोनस JavaScript मध्ये टायमिंग कसे कार्य करते हे स्पष्ट समजले पाहिजे.
प्रथम फंक्शन का आउटपुट करते हे समजून घेण्यासाठी कोडमध्ये जाऊ या २४ 5 सेकंदांनंतर, आणि दुसरे फंक्शन देखील आउटपुट करते २४ पण वेगळ्या वचन रचनेसह. या ज्ञानासह, तुम्ही तुमच्या आगामी मुलाखतीच्या मुल्यांकनांसाठी अधिक सुसज्ज असाल.
आज्ञा | वापराचे उदाहरण |
---|---|
सेट टाइमआउट | setTimeout(() =>setTimeout(() => { res(x); }, 5000); ही कमांड निर्दिष्ट विलंबानंतर फंक्शन कार्यान्वित करते. या संदर्भात, 5 सेकंदांनंतर मूल्य परत करून असिंक्रोनस वर्तनाचे अनुकरण करण्यासाठी वापरले जाते. |
नवीन वचन | return new Promise(res =>नवीन वचन परत करा(res => {...}); एक नवीन वचन तयार करते जे असिंक्रोनस कोड गुंडाळते, जे async ऑपरेशन पूर्ण झाल्यानंतर मूल्ये सोडवण्यास किंवा नाकारण्यास अनुमती देते. |
प्रतीक्षा करा | const f = प्रतीक्षा करा after5s(3); वचनाचे निराकरण होईपर्यंत async फंक्शनच्या अंमलबजावणीला विराम देते, कोड एका असिंक्रोनस फंक्शनमध्ये समक्रमितपणे वागतो. |
async फंक्शन | async फंक्शन मल्टी(इनपुट) {...} च्या वापरास अनुमती देणारे असिंक्रोनस फंक्शन घोषित करते प्रतीक्षा करा स्वच्छ आणि वाचनीय मार्गाने असिंक्रोनस ऑपरेशन्स हाताळण्यासाठी आत. |
नंतर | mult(2).then(value =>mult(2).नंतर(मूल्य => {...}); वचनाशी कॉलबॅक संलग्न करते. जेव्हा वचनाचे निराकरण केले जाते, तेव्हा कॉलबॅक निराकरण केलेल्या मूल्यासह कार्यान्वित केला जातो. |
वचनबद्धता | const f = after5s(3); const g = after5s(4); हे दोन वचनांना समांतरपणे चालवण्यास अनुमती देते दुसरे सुरू करण्यापूर्वी एक निराकरण होण्याची प्रतीक्षा न करता, अशा प्रकारे कार्यप्रदर्शन सुधारते. |
console.log | console.log(मूल्य); डीबगिंग किंवा परिणाम तपासण्याच्या हेतूंसाठी कन्सोलवर मूल्य आउटपुट करते. |
res | res(x); साठी लघुलेख निराकरण वचनांमध्ये, वचन पूर्ण म्हणून चिन्हांकित करणे आणि मूल्य परत करणे असे म्हणतात. |
इनपुट * प्रतीक्षा f | रिटर्न इनपुट * await f * await g; दोन असिंक्रोनस ऑपरेशन्सच्या निराकरण केलेल्या मूल्यांद्वारे इनपुट गुणाकार करते, गणना करण्यापूर्वी दोन्ही वचनांचे निराकरण झाले आहे याची खात्री करते. |
JavaScript मध्ये असिंक्रोनस ऑपरेशन्स एक्सप्लोर करणे
प्रदान केलेल्या स्क्रिप्ट्स वापरून JavaScript मध्ये असिंक्रोनस ऑपरेशन्सची शक्ती प्रदर्शित करतात async आणि प्रतीक्षा करा कीवर्ड विलंबित ऑपरेशन्स सारख्या अतुल्यकालिक कार्ये कुशलतेने हाताळणे ही मुख्य कल्पना आहे. दोन्ही उदाहरणांमध्ये, फंक्शन 5s(x) नंतर मूल्यासह निराकरण करणारे वचन परत करून 5 सेकंदांच्या विलंबाचे अनुकरण करते x. ऑपरेशन्सचा क्रम आणि वचने फंक्शनच्या प्रवाहाशी कशी संवाद साधतात हे समजून घेण्यासाठी हा विलंब आवश्यक आहे.
पहिल्या कार्यात, बहु(इनपुट), कोड दोन वचनांचे निराकरण करण्यासाठी क्रमशः प्रतीक्षा करते. द प्रतीक्षा करा कीवर्ड खात्री देतो की वचन परत येईपर्यंत कोड अंमलबजावणीला विराम देतो 5s नंतर(3) निराकरण केले आहे. नंतर, पहिल्या वचनाचे निराकरण झाल्यानंतर, कोड दुसऱ्या वचनासाठी आणखी 5 सेकंद प्रतीक्षा करतो 5s नंतर(4) निराकरण करण्यासाठी. यामुळे गणना होण्यापूर्वी एकूण 10 सेकंद प्रतीक्षा वेळ मिळेल. दोन्ही निराकरण केलेल्या मूल्यांद्वारे इनपुटचे गुणाकार अंतिम आउटपुट देते.
दुसरे कार्य, second_mult(इनपुट), दोन्ही वचने एकाच वेळी सुरू करून कार्यप्रदर्शन सुधारते. नियुक्त करून 5s नंतर(3) आणि 5s नंतर(4) अर्ज करण्यापूर्वी व्हेरिएबल्सवर प्रतीक्षा करा, दोन्ही आश्वासने समांतर चालतात. कोड पोहोचल्यावर प्रतीक्षा करा विधाने, दोन्ही वचनांचे निराकरण होण्याची प्रतीक्षा करते, परंतु ते आधीच प्रगतीपथावर आहेत, एकूण प्रतीक्षा वेळ फक्त 5 सेकंदांपर्यंत कमी करते. हे समवर्ती अंमलबजावणी असिंक्रोनस ऑपरेशन्स ऑप्टिमाइझ करण्याचे महत्त्व हायलाइट करते.
असिंक्रोनस कोड स्वच्छपणे हाताळण्यासाठी async आणि await कसे वापरले जाऊ शकतात हे या स्क्रिप्ट्स दाखवतात. कार्यप्रदर्शन ऑप्टिमाइझ करण्यासाठी समकालिक कार्ये एकाच वेळी किंवा अनुक्रमे केव्हा चालवायची हे समजून घेणे महत्वाचे आहे. द दुसरा_mult फंक्शनचा दृष्टीकोन अनावश्यक विलंब टाळण्याचा फायदा दर्शवितो, जेव्हा ऑपरेशन विशिष्ट क्रमाने व्हायला हवे तेव्हा पहिले उदाहरण उपयुक्त ठरते. दोन्ही उदाहरणे वास्तविक-जगातील परिस्थितींमध्ये व्यापकपणे लागू आहेत वचन हाताळणी आवश्यक आहे, जसे की API मधून डेटा आणणे किंवा बाह्य संसाधनांवर अवलंबून असलेली ऑपरेशन्स करणे.
Async/Await वर्तन JavaScript वेळेत स्पष्ट केले आहे
हे उदाहरण JavaScript वापरून असिंक्रोनस ऑपरेशन्स दाखवते async आणि प्रतीक्षा करा कार्ये
function after5s(x) {
return new Promise(res => {
setTimeout(() => {
res(x);
}, 5000);
});
}
// First approach using async/await with sequential waits
async function mult(input) {
const f = await after5s(3);
const g = await after5s(4);
return input * f * g;
}
// Calling the function and handling the promise resolution
mult(2).then(value => {
console.log(value); // Output: 24 after 10 seconds
});
Async ऑप्टिमाइझ करणे/समवर्ती अंमलबजावणीसाठी प्रतीक्षा करा
कोडची ही आवृत्ती प्रत्येक वचनाची अनुक्रमे वाट पाहणे टाळण्यासाठी वचनबद्धता वापरून async प्रक्रियेस अनुकूल करते.
१
JavaScript मध्ये असिंक्रोनस पॅटर्नमध्ये प्रभुत्व मिळवणे
आधुनिक JavaScript मधील सर्वात महत्वाची संकल्पना म्हणजे असिंक्रोनस कार्ये कुशलतेने कशी हाताळायची. तर द async/प्रतीक्षा सिंटॅक्स असिंक्रोनस कोडची वाचनीयता सुलभ करते, विकासकांनी विचार करणे आवश्यक असलेले इतर घटक आहेत. async फंक्शन्स वापरण्याचा एक महत्त्वाचा पैलू म्हणजे JavaScript कसे व्यवस्थापित करते हे समजून घेणे इव्हेंट लूप आणि असिंक्रोनस कॉल स्टॅक. इव्हेंट लूप JavaScript ला एकाच वेळी अनेक कार्ये कार्यान्वित करण्यास अनुमती देते, अगदी सिंगल-थ्रेडेड वातावरणात, नॉन-ब्लॉकिंग कार्ये, जसे की वचने, रांगेत ढकलून आणि इतर कोडची अंमलबजावणी सुरू ठेवून.
असिंक्रोनस ऑपरेशन्समध्ये अनेकदा दुर्लक्ष केले जाणारे घटक म्हणजे त्रुटी हाताळणे. async/await सिंटॅक्स वापरून, विकासक त्यांचा कोड a मध्ये गुंडाळू शकतात प्रयत्न करा... पकड वचन नाकारणे आणि इतर त्रुटी कृपापूर्वक व्यवस्थापित करण्यासाठी ब्लॉक करा. ही पद्धत सुनिश्चित करते की ॲसिंक्रोनस ऑपरेशनमध्ये येणाऱ्या कोणत्याही त्रुटी प्रोग्रामचा प्रवाह खंडित न करता पकडल्या जातात आणि हाताळल्या जातात. असिंक्रोनस फंक्शन्स केवळ कार्यप्रदर्शन सुधारत नाहीत तर जटिल त्रुटी हाताळणे अधिक कार्यक्षम आणि डीबग करणे सोपे करते.
लक्ष केंद्रित करण्याचे आणखी एक महत्त्वाचे क्षेत्र म्हणजे कसे वचन.सर्व एकाच वेळी अनेक आश्वासने हाताळण्यासाठी वापरले जाऊ शकते. पहिल्या उदाहरणाप्रमाणे क्रमाने वचनांची वाट पाहण्यापेक्षा, वचन.सर्व सर्व वचने एकाच वेळी कार्यान्वित करते, ॲरेमध्ये परिणाम परत करते. एकाधिक API कॉल करताना किंवा अंमलबजावणीचा क्रम गंभीर नसलेल्या अनेक कार्ये करताना ही पद्धत अत्यंत उपयुक्त आहे. इष्टतम आणि स्केलेबल JavaScript कोड लिहिण्यासाठी समवर्ती कार्ये योग्यरित्या कशी तयार करावी हे समजून घेणे महत्वाचे आहे.
JavaScript मध्ये Async/Await वर वारंवार विचारले जाणारे प्रश्न
- उद्देश काय आहे async JavaScript मध्ये?
- द async कीवर्ड फंक्शनला वचन परत करण्यास अनुमती देतो आणि वापरण्यास सक्षम करतो await फंक्शन मध्ये.
- काय करते await कीवर्ड करू?
- द await वचनाचे निराकरण होईपर्यंत कीवर्ड फंक्शनच्या अंमलबजावणीला विराम देतो, ॲसिंक्रोनस कार्ये अधिक समकालिकपणे हाताळली जाऊ शकतात याची खात्री करून.
- JavaScript असिंक्रोनस कोडची अंमलबजावणी कशी व्यवस्थापित करते?
- JavaScript वापरते ५ सिंक्रोनस कार्ये हाताळण्यासाठी, एकल-थ्रेडेड वातावरणातही नॉन-ब्लॉकिंग कोडच्या अंमलबजावणीला अनुमती देते.
- अनुक्रमिक आणि समवर्ती async अंमलबजावणीमध्ये काय फरक आहे?
- अनुक्रमिक अंमलबजावणीमध्ये, प्रत्येक await फंक्शनला विराम देते, समवर्ती अंमलबजावणीमध्ये, सर्व वचने एकाच वेळी चालतात, प्रतीक्षा वेळ कमी करते.
- async/await मध्ये त्रुटी हाताळणे कसे कार्य करते?
- सह ७, ॲसिंक्रोनस फंक्शन्समधील त्रुटी पकडल्या जातात आणि हाताळल्या जातात, प्रोग्रामला क्रॅश होण्यापासून प्रतिबंधित करते.
JavaScript मध्ये असिंक्रोनस एक्झिक्यूशन गुंडाळणे
JavaScript मधील async/await कार्यक्षमता हा एसिंक्रोनस ऑपरेशन्स हाताळण्याचा एक शक्तिशाली मार्ग आहे, ज्यामुळे कोड अधिक वाचनीय आणि कार्यक्षम होतो. प्रदान केलेल्या उदाहरणांमध्ये, चा वापर प्रतीक्षा करा योग्य क्रम हाताळणी सुनिश्चित करते, पहिले उदाहरण अनुक्रमे वचने चालवते आणि दुसरे त्यांना एकाच वेळी कार्यान्वित करते.
आश्वासने कशी सोडवतात याचे महत्त्व ओळखून, विकासक अनावश्यक विलंब टाळू शकतात आणि त्यांच्या अनुप्रयोगाची कार्यक्षमता वाढवू शकतात. एपीआय किंवा जटिल असिंक्रोनस कार्ये हाताळणे असो, या वैशिष्ट्यांचा लाभ घेणे कार्यक्षमता आणि कोड स्पष्टता या दोन्हीमध्ये लक्षणीय सुधारणा प्रदान करू शकते.
संदर्भ आणि बाह्य स्रोत
- या लेखात अधिकृत माहिती वापरली आहे MDN वेब डॉक्स async/प्रतीक्षा वर , जे JavaScript मध्ये असिंक्रोनस प्रोग्रामिंगवर सर्वसमावेशक मार्गदर्शक ऑफर करते.
- JavaScript मुलाखतीच्या मुल्यांकनांवरील अधिक तपशीलांसाठी, Adaface JavaScript ऑनलाइन चाचणी मुलाखतींमध्ये वापरल्या जाणाऱ्या तांत्रिक चाचण्यांची वास्तविक-जगातील उदाहरणे देऊन सल्लामसलत केली गेली.