"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Node.js में Async पैटर्न - Node.js ट्यूटोरियल - भाग 6

Node.js में Async पैटर्न - Node.js ट्यूटोरियल - भाग 6

2024-11-02 को प्रकाशित
ब्राउज़ करें:156

Async Patterns in Node.js - Node.js Tutorial - Part 6

Node.js में Async पैटर्न

Node.js एकल-थ्रेडेड इवेंट-संचालित आर्किटेक्चर पर काम करता है, जिसका अर्थ है कि यह मुख्य थ्रेड को अवरुद्ध किए बिना एक साथ कई ऑपरेशनों को संभाल सकता है। यह स्केलेबल एप्लिकेशन बनाने के लिए महत्वपूर्ण है जहां अन्य कोड के निष्पादन को अवरुद्ध करने से बचने के लिए I/O संचालन (फ़ाइलें पढ़ना, डेटाबेस क्वेरी करना आदि) जैसे कार्यों को अतुल्यकालिक रूप से करने की आवश्यकता होती है।

Async बनाम सिंक कोड लिखना

तुल्यकालिक कोड

सिंक्रोनस कोड एक समय में एक चरण निष्पादित करता है, जिसका अर्थ है कि प्रत्येक चरण को अगले पर जाने से पहले पूरा करना होगा। यदि संचालन धीमा है (उदाहरण के लिए, बड़ी फ़ाइल पढ़ना या डेटाबेस क्वेरी करना) तो यह मुख्य थ्रेड को ब्लॉक कर सकता है।

उदाहरण (सिंक्रोनस कोड):

const fs = require('fs');

const data = fs.readFileSync('file.txt', 'utf8');
console.log(data);
  • समस्या: यदि readFileSync में लंबा समय लगता है (उदाहरण के लिए, फ़ाइल बड़ी है), तो इस अवधि के दौरान संपूर्ण एप्लिकेशन ब्लॉक कर दिया जाएगा।

अतुल्यकालिक कोड

दूसरी ओर, एसिंक्रोनस कोड, मुख्य थ्रेड को ब्लॉक नहीं करता है। किसी ऑपरेशन के पूरा होने की प्रतीक्षा करने के बजाय, प्रोग्राम निष्पादित करना जारी रखता है और तैयार होने पर एसिंक ऑपरेशन के परिणाम को संभालता है।

उदाहरण (एसिंक्रोनस कोड):

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!');
  • इस उदाहरण में, फ़ाइल को एसिंक्रोनस रूप से पढ़ा जाता है, और प्रोग्राम ब्लॉक नहीं करता है; लाइन कंसोल.लॉग('यह फ़ाइल सामग्री से पहले लॉग करेगा!') फ़ाइल पढ़ते समय निष्पादित होती है।

सिंक्रोनस बनाम एसिंक्रोनस का उपयोग कब करें

  • सिंक्रोनस कोड छोटे कार्यों या स्क्रिप्ट के लिए ठीक है जहां प्रदर्शन चिंता का विषय नहीं है।
  • एसिंक्रोनस कोड वेब सर्वर जैसे I/O-भारी अनुप्रयोगों के लिए आदर्श है, जहां आप डेटाबेस क्वेरी या HTTP अनुरोध जैसे संचालन की प्रतीक्षा करते समय मुख्य थ्रेड को ब्लॉक नहीं करना चाहते हैं।

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();

सारांश

  • कॉलबैक सरल हैं लेकिन कॉलबैक नरक में ले जा सकते हैं।
  • वादे कॉलबैक नरक को साफ़ करें और बेहतर त्रुटि प्रबंधन प्रदान करें।
  • Async/Await एसिंक्रोनस कोड को सिंक्रोनस बनाता है, जिससे पठनीयता में सुधार होता है।

एसिंक बनाम सिंक कोड चुनना आपके उपयोग के मामले पर निर्भर करता है। I/O-भारी संचालन के लिए, मुख्य थ्रेड को गैर-अवरुद्ध रखने और आपके एप्लिकेशन को प्रतिक्रियाशील बनाए रखने के लिए हमेशा अतुल्यकालिक पैटर्न को प्राथमिकता दें।

पढ़ने के लिए धन्यवाद, और कोडिंग का आनंद लें! ?

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/hakimmohamed/async-patterns-in-nodejs-1e10?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3