Node.js एकल-थ्रेडेड इवेंट-संचालित आर्किटेक्चर पर काम करता है, जिसका अर्थ है कि यह मुख्य थ्रेड को अवरुद्ध किए बिना एक साथ कई ऑपरेशनों को संभाल सकता है। यह स्केलेबल एप्लिकेशन बनाने के लिए महत्वपूर्ण है जहां अन्य कोड के निष्पादन को अवरुद्ध करने से बचने के लिए I/O संचालन (फ़ाइलें पढ़ना, डेटाबेस क्वेरी करना आदि) जैसे कार्यों को अतुल्यकालिक रूप से करने की आवश्यकता होती है।
सिंक्रोनस कोड एक समय में एक चरण निष्पादित करता है, जिसका अर्थ है कि प्रत्येक चरण को अगले पर जाने से पहले पूरा करना होगा। यदि संचालन धीमा है (उदाहरण के लिए, बड़ी फ़ाइल पढ़ना या डेटाबेस क्वेरी करना) तो यह मुख्य थ्रेड को ब्लॉक कर सकता है।
उदाहरण (सिंक्रोनस कोड):
const fs = require('fs'); const data = fs.readFileSync('file.txt', 'utf8'); console.log(data);
दूसरी ओर, एसिंक्रोनस कोड, मुख्य थ्रेड को ब्लॉक नहीं करता है। किसी ऑपरेशन के पूरा होने की प्रतीक्षा करने के बजाय, प्रोग्राम निष्पादित करना जारी रखता है और तैयार होने पर एसिंक ऑपरेशन के परिणाम को संभालता है।
उदाहरण (एसिंक्रोनस कोड):
const fs = require('fs'); // Call Back fs.readFile('file.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); }); console.log('This will log before the file content!');
Async/प्रतीक्षा
ES2017 (Node.js 7.6) में पेश किया गया, async/await वादों के शीर्ष पर निर्मित सिंटैक्टिक शुगर है। यह एसिंक्रोनस कोड को सिंक्रोनस की तरह लिखने की अनुमति देता है, जिससे इसे अधिक पठनीय और बनाए रखना आसान हो जाता है।
उदाहरण (Async/प्रतीक्षा):
const fs = require('fs').promises; async function readFile() { try { const data = await fs.readFile('file.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } } readFile();
एसिंक बनाम सिंक कोड चुनना आपके उपयोग के मामले पर निर्भर करता है। I/O-भारी संचालन के लिए, मुख्य थ्रेड को गैर-अवरुद्ध रखने और आपके एप्लिकेशन को प्रतिक्रियाशील बनाए रखने के लिए हमेशा अतुल्यकालिक पैटर्न को प्राथमिकता दें।
पढ़ने के लिए धन्यवाद, और कोडिंग का आनंद लें! ?
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3