इवेंट लूप Node.js में एक मुख्य अवधारणा है जो इसे अतुल्यकालिक संचालन को कुशलतापूर्वक संभालने में सक्षम बनाता है। यह कैसे काम करता है इसका सरलीकृत विवरण यहां दिया गया है:
Node.js एक ही थ्रेड पर काम करता है। इसका मतलब यह है कि यह एक समय में कोड के केवल एक टुकड़े को निष्पादित कर सकता है। हालाँकि, Node.js को कई थ्रेड्स की आवश्यकता के बिना एक साथ कई ऑपरेशनों को संभालने के लिए डिज़ाइन किया गया है।
Node.js नॉन-ब्लॉकिंग I/O ऑपरेशंस का उपयोग करता है। जब Node.js फ़ाइलें पढ़ने, डेटाबेस को क्वेरी करने या नेटवर्क अनुरोध करने जैसे कार्य करता है, तो यह अगले कार्य पर जाने से पहले इन कार्यों के पूरा होने की प्रतीक्षा नहीं करता है। इसके बजाय, यह अन्य कोड निष्पादित करना जारी रखता है जबकि ये कार्य संसाधित हो रहे हैं।
इवेंट लूप कोड के निष्पादन को प्रबंधित करने और अतुल्यकालिक घटनाओं को संभालने के लिए जिम्मेदार है। यह लगातार कार्यों की "कतार" की जांच करता है और निर्णय लेता है कि किन कार्यों को निष्पादित करना है। यहां चरण-दर-चरण विवरण दिया गया है:
एसिंक्रोनस कार्य, एक बार पूरा हो जाने पर, उनके कॉलबैक को एक कतार में धकेल देते हैं। इवेंट लूप इन कॉलबैक को कतार से चुनता है और उन्हें क्रम में निष्पादित करता है।
मुख्य कतार के अलावा, एक माइक्रोटास्क कतार (या अगली टिक कतार) भी है जहां प्रोसेस.नेक्स्टटिक() या वादों के .then() हैंडलर के साथ निर्धारित कॉलबैक कतारबद्ध हैं। माइक्रोटास्क को नियमित कॉलबैक पर प्राथमिकता दी जाती है, जिसका अर्थ है कि उन्हें वर्तमान ऑपरेशन पूरा होने के बाद लेकिन इवेंट लूप के अगले चरण में जाने से पहले निष्पादित किया जाता है।
ईवेंट लूप कैसे काम करता है यह बताने के लिए यहां एक सरल उदाहरण दिया गया है:
const fs = require('fs'); console.log('Start'); fs.readFile('file.txt', (err, data) => { if (err) throw err; console.log('File read complete'); }); console.log('End');
आउटपुट:
Start End File read complete
स्पष्टीकरण:
इवेंट लूप, सिस्टम को ऑपरेशंस सौंपकर और उनके परिणामों को एसिंक्रोनस रूप से संभालकर, एकल-थ्रेडेड होने के बावजूद, Node.js को एक साथ कई ऑपरेशनों को कुशलतापूर्वक संभालने की अनुमति देता है।
इवेंट लूप कार्यों के निष्पादन को व्यवस्थित करता है, माइक्रोटास्क कतार को प्राथमिकता देता है ताकि यह सुनिश्चित किया जा सके कि मुख्य कार्य कतार में कार्यों पर आगे बढ़ने से पहले वादों और संबंधित संचालन को जल्दी से हल किया जाता है। (मैक्रो टास्क)।
यह डायनामिक जावास्क्रिप्ट को एकल-थ्रेडेड वातावरण में जटिल अतुल्यकालिक व्यवहार को संभालने में सक्षम बनाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3