Node.js - कॉलबैक कॉन्सेप्ट
कॉलबैक क्या है?
कॉलबैक एक फ़ंक्शन के लिए एक एसिंक्रोनस समतुल्य है। किसी कॉलबैक फ़ंक्शन को किसी दिए गए कार्य के पूरा होने पर कहा जाता है। नोड कॉलबैक का भारी उपयोग करता है। नोड के सभी एपीआई इस तरह से लिखे गए हैं कि वे कॉलबैक का समर्थन करते हैं।
उदाहरण के लिए, किसी फ़ाइल को पढ़ने के लिए एक फ़ंक्शन फ़ाइल पढ़ना शुरू कर सकता है और तुरंत निष्पादन पर्यावरण पर नियंत्रण वापस कर सकता है ताकि अगले निर्देश को निष्पादित किया जा सके। एक बार फ़ाइल I / O पूर्ण हो जाने पर, यह कॉलबैक फ़ंक्शन, कॉलबैक फ़ंक्शन, पैरामीटर के रूप में फ़ाइल की सामग्री को पास करते समय कॉल करेगा। तो फ़ाइल I / O के लिए कोई अवरोध या प्रतीक्षा नहीं है। यह Node.js को अत्यधिक स्केलेबल बनाता है, क्योंकि यह किसी भी फ़ंक्शन के परिणामों की प्रतीक्षा किए बिना उच्च संख्या में अनुरोधों को संसाधित कर सकता है।
ब्लॉकिंग कोड उदाहरण
नाम से एक पाठ फ़ाइल बनाएँ input.txt निम्नलिखित सामग्री के साथ -
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
नाम से एक js फाइल बनाएं main.js निम्नलिखित कोड के साथ -
var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("Program Ended");
अब परिणाम देखने के लिए main.js चलाएं -
$ node main.js
आउटपुट सत्यापित करें।
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
Program Ended
गैर-अवरोधक कोड उदाहरण
निम्न सामग्री के साथ input.txt नामक एक टेक्स्ट फ़ाइल बनाएँ।
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
निम्नलिखित कोड के लिए main.js अपडेट करें -
var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("Program Ended");
अब परिणाम देखने के लिए main.js चलाएं -
$ node main.js
आउटपुट सत्यापित करें।
Program Ended
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
ये दो उदाहरण अवरुद्ध और गैर-अवरुद्ध कॉल की अवधारणा की व्याख्या करते हैं।
पहला उदाहरण दिखाता है कि प्रोग्राम तब तक ब्लॉक करता है जब तक कि वह फ़ाइल को पढ़ नहीं लेता है और तब केवल प्रोग्राम को समाप्त करने के लिए आगे बढ़ता है।
दूसरा उदाहरण दिखाता है कि प्रोग्राम फ़ाइल पढ़ने का इंतजार नहीं करता है और "प्रोग्राम एंडेड" को प्रिंट करने के लिए आगे बढ़ता है और साथ ही, बिना ब्लॉक किए प्रोग्राम फ़ाइल को पढ़ना जारी रखता है।
इस प्रकार, एक अवरुद्ध कार्यक्रम अनुक्रम में बहुत अधिक निष्पादित होता है। प्रोग्रामिंग के दृष्टिकोण से, तर्क को लागू करना आसान है लेकिन गैर-अवरुद्ध कार्यक्रम अनुक्रम में निष्पादित नहीं करते हैं। यदि किसी कार्यक्रम को संसाधित करने के लिए किसी भी डेटा का उपयोग करने की आवश्यकता होती है, तो इसे अनुक्रमिक निष्पादन करने के लिए उसी ब्लॉक के भीतर रखा जाना चाहिए।