Node.js मा घटनाहरू र एसिन्क्रोनिसिटी ह्यान्डलिंग

Node.js एप्लिकेसनहरू विकास गर्ने प्रक्रियामा, घटना ह्यान्डलिंग र एसिन्क्रोनस प्रशोधनसँग बुझ्ने र काम गर्ने महत्त्वपूर्ण छन्। Node.js घटना-संचालित र एसिन्क्रोनस मोडेलमा बनाइएको छ, कार्यहरू पूरा हुनको लागि पर्खाइ बिना कार्यान्वयन गर्न अनुमति दिन्छ। वास्तवमा, घटना ह्यान्डलिङ र एसिन्क्रोनस प्रशोधनलाई बुझ्ने र सही रूपमा लागू गर्ने अनुप्रयोग प्रदर्शनलाई अनुकूलन गर्ने एक आवश्यक भाग हो।

 

Node.js मा घटनाहरू र कलब्याकहरू

Node.js मा, घटनाहरू र कलब्याकहरूले एसिन्क्रोनस सञ्चालनहरू ह्यान्डल गर्न महत्त्वपूर्ण भूमिका खेल्छन्। घटनाहरू एप्लिकेसन भित्र हुने निश्चित कार्य वा घटनाहरूलाई ह्यान्डल गर्ने र प्रतिक्रिया दिने तरिका हो। कलब्याकहरू, अर्कोतर्फ, कार्यहरू हुन् जुन एक पटक विशेष घटना वा अपरेशन पूरा भएपछि कार्यान्वयन गरिन्छ।

Node.js ले घटना-संचालित वास्तुकला प्रदान गर्दछ जहाँ अनुप्रयोगका विभिन्न भागहरूले घटनाहरू उत्सर्जन गर्न र तिनीहरूको लागि सुन्न सक्छन्। यसले एकैसाथ धेरै अपरेशनहरूको कुशल र गैर-ब्लकिङ प्रशोधन गर्न अनुमति दिन्छ।

कलब्याकहरू सामान्यतया Node.js मा एसिन्क्रोनस सञ्चालनहरू ह्यान्डल गर्न प्रयोग गरिन्छ। तिनीहरू प्रकार्यहरूमा तर्कको रूपमा पास हुन्छन् र सञ्चालन पूरा भएपछि कार्यान्वयन गरिन्छ। कलब्याकहरूले एसिन्क्रोनस कार्यहरूको समयमा हुने परिणाम वा त्रुटिहरू ह्यान्डल गर्ने तरिका प्रदान गर्दछ।

यहाँ Node.js मा कलब्याक प्रयोग गर्ने एउटा उदाहरण छ:

// A function that takes a callback
function fetchData(callback) {
  // Simulate fetching data from an asynchronous operation
  setTimeout(() => {
    const data = { name: 'John', age: 30 };
    callback(null, data); // Pass the data to the callback
  }, 2000); // Simulate a 2-second delay
}

// Call the fetchData function and provide a callback
fetchData((error, data) => {
  if (error) {
    console.error('Error:', error);
  } else {
    console.log('Data:', data);
  }
});

यस उदाहरणमा, हामीसँग एउटा प्रकार्य छ fetchDataजसलाई एसिन्क्रोनस अपरेसनबाट डेटा ल्याउने सिमुलेट भनिन्छ (जस्तै, एपीआई कल गर्ने वा डाटाबेस क्वेरी गर्ने)। यसले तर्कको रूपमा कलब्याक प्रकार्य लिन्छ।

प्रकार्य भित्र fetchData, हामी setTimeoutएसिन्क्रोनस अपरेशन सिमुलेट गर्न प्रयोग गर्छौं। 2-सेकेन्ड ढिलाइ पछि, हामी केहि नमूना डेटा सिर्जना गर्छौं र त्रुटिको साथ कलब्याक प्रकार्यमा पास गर्छौं (जुन nullयस अवस्थामा सेट गरिएको छ)।

प्रकार्य बाहिर fetchData, हामी यसलाई कल गर्छौं र कलब्याक प्रकार्य प्रदान गर्दछौं। कलब्याकमा, हामी कुनै पनि सम्भावित त्रुटिहरू ह्यान्डल गर्छौं र प्राप्त डाटालाई प्रशोधन गर्छौं। यदि त्यहाँ त्रुटि छ भने, हामी यसलाई कन्सोलमा लग गर्छौं। अन्यथा, हामी डाटा लग।

यो एक आधारभूत उदाहरण हो Node.js मा कलब्याक प्रयोग गरेर एसिन्क्रोनस अपरेसनहरू ह्यान्डल गर्न र डाटा उपलब्ध भएपछि प्रशोधन गरिएको सुनिश्चित गर्नुहोस्। वास्तविक-विश्व परिदृश्यहरूमा, कलब्याकहरू सामान्यतया डाटाबेस प्रश्नहरू, API अनुरोधहरू, र अन्य एसिन्क्रोनस कार्यहरू ह्यान्डल गर्न प्रयोग गरिन्छ।

 

प्रतिज्ञाहरू प्रयोग गर्दै र एसिन्क्रोनिसिटी ह्यान्डल गर्न async/ प्रतीक्षा गर्नुहोस्

"असिंक्रोनस अपरेशनहरू ह्यान्डल गर्न प्रतिज्ञा र async/await को प्रयोग" Node.js मा एसिन्क्रोनस कार्यहरूलाई सजिलो र प्रभावकारी तरिकाले ह्यान्डल गर्नको लागि एक सामान्य दृष्टिकोण हो। Promise एउटा JavaScript वस्तु हो जसले हामीलाई एसिन्क्रोनस अपरेसनहरू व्यवस्थापन र ह्यान्डल गर्न मद्दत गर्छ, जबकि async/await एउटा सिन्ट्याक्स हो जसले हामीलाई सिंक्रोनस कोडमा समान रूपमा एसिन्क्रोनस कोड लेख्न अनुमति दिन्छ।

प्रतिज्ञा र async/await प्रयोग गरेर, हामी एसिन्क्रोनस कोड अझ सजिलै र सहज रूपमा लेख्न सक्छौं। हामीले अब कलब्याक प्रकार्यहरू प्रयोग गर्न र एसिन्क्रोनस सञ्चालनहरू ह्यान्डल गर्न कलब्याक नरक (नेस्टेड कलब्याक प्रकार्यहरू) सँग सम्झौता गर्न आवश्यक छैन। यसको सट्टा, हामी प्रतिज्ञा पूरा गर्न र यसको नतिजा फिर्ता गर्न पर्खन प्रतीक्षा कुञ्जी शब्द प्रयोग गर्न सक्छौं।

एसिन्क्रोनस अपरेसनहरू ह्यान्डल गर्न Node.js मा Promise र async/await प्रयोग गर्ने उदाहरण यहाँ छ:

// A mock function to fetch data from an API
function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const data = { name: 'John', age: 30 };
      resolve(data); // Return data within the Promise
    }, 2000);
  });
}

// Using async/await to handle asynchronous operations
async function getData() {
  try {
    const data = await fetchData(); // Wait for the Promise to complete and return the data
    console.log('Data:', data);
  } catch (error) {
    console.error('Error:', error);
  }
}

// Call the getData function
getData();

यस उदाहरणमा, हामी fetchDataएपीआई (वा कुनै एसिन्क्रोनस अपरेसन) बाट डेटा ल्याउने अनुकरण गर्न प्रकार्य प्रयोग गर्छौं। यो प्रकार्यले प्रतिज्ञा फर्काउँछ, जहाँ हामी resolveडेटा फिर्ता गर्न प्रकार्यलाई कल गर्छौं।

प्रकार्य बाहिर fetchData, हामी try/catchत्रुटिहरू ह्यान्डल गर्न ब्लक प्रयोग गर्छौं। प्रकार्यमा getData, हामी awaitप्रतिज्ञा पूरा गर्न र डाटा फिर्ता गर्न पर्खन कुञ्जी शब्द प्रयोग गर्छौं। यदि प्रतिज्ञामा त्रुटि छ भने, यसले अपवाद फ्याँक्नेछ र हामी यसलाई ब्लकमा ह्यान्डल गर्छौं catch

अन्तमा, हामी getDataएसिन्क्रोनस प्रशोधन सुरु गर्न प्रकार्यलाई कल गर्छौं। प्रतिज्ञा पूरा भएपछि र डेटा फिर्ता गरेपछि परिणाम कन्सोलमा लग इन हुनेछ।

प्रतिज्ञा र async/await को प्रयोगले हाम्रो कोड अझ पढ्न योग्य र एसिन्क्रोनस अपरेसनहरूसँग व्यवहार गर्दा बुझ्न सजिलो बनाउँछ। यसले हामीलाई कलब्याक नरकबाट बच्न मद्दत गर्दछ र हामीलाई सिंक्रोनस कोड लेख्ने जस्तै क्रमबद्ध रूपमा कोड लेख्न अनुमति दिन्छ।

 

निष्कर्ष: घटना ह्यान्डलिंग र एसिन्क्रोनस प्रशोधन Node.js अनुप्रयोगहरूको विकासमा दुई महत्त्वपूर्ण पक्षहरू हुन्। सम्बन्धित अवधारणाहरू र उपकरणहरूलाई बुझेर र सही रूपमा प्रयोग गरेर, तपाईंले Node.js प्लेटफर्ममा दक्ष, लचिलो र भरपर्दो अनुप्रयोगहरू निर्माण गर्न सक्नुहुन्छ।