मैं NodeJS सीख रहा हूँ और बस कुछ स्पष्ट करना चाहता था। कई परिचयात्मक ट्यूटोरियल और पुस्तकों में अब तक, बहुत जल्दी उन्होंने नोड के "गैर-अवरुद्ध" वास्तुकला का वर्णन किया है - या इसके बजाय कि यह संभव है (और अनुशंसित है, पूरे बिंदु) को गैर-अवरुद्ध तरीके से कोड करना है।
इसलिए उदाहरण के लिए, यह उदाहरण एक पुस्तक में दिया गया था जो मैं डेटाबेस से डेटा प्राप्त करने के लिए एक अतुल्यकालिक तरीके से पढ़ रहा हूं।
http.createServer(function (req, res) {
database.getInformation(function (data) {
res.writeHead(200);
res.end(data);
});
});
क्या होता है (जैसा कि मैं इसे समझता हूं) नोड डेटाबेस को कॉल करता है, फिर कॉल स्टैक पर आगे जो कुछ भी हो सकता है उसे संसाधित करना जारी रखता है। जब डेटाबेस अनुरोध पूरा हो जाता है, तो अनाम कॉलबैक फ़ंक्शन में डेटा चर आबाद हो जाएगा और उस फ़ंक्शन को कॉल स्टैक में जोड़ा गया (और बाद में जब नोड को इसे प्राप्त होता है)।
मेरा प्रश्न यह है कि डेटाबेस अनुरोध को वास्तव में क्या संसाधित कर रहा है? निश्चित रूप से नोड को ब्लॉक करना पड़ता है जबकि ऐसा होता है? डेटाबेस अनुरोध का क्या ख्याल है? या यदि नोड बाहरी संसाधन के लिए अतुल्यकालिक HTTP जीईटी अनुरोध पर प्रतीक्षा कर रहा है, तो उस अनुरोध का क्या ख्याल है जो नोड को कॉल स्टैक को संसाधित करने और "गैर-अवरुद्ध" होने की अनुमति देता है?
net
Http उपलब्ध नहीं होने पर पैकेज है।