আমি নোডজেএস শিখছি এবং কিছু স্পষ্ট করে বলতে চাই। এখনও অবধি বেশ কয়েকটি প্রবর্তনীয় টিউটোরিয়াল এবং বইয়ে তারা নোডের "অ-ব্লকিং" আর্কিটেকচারের বর্ণনা দিয়েছেন - বা বরং যে এটি সম্ভব (এবং প্রস্তাবিত, পুরো বিন্দু) একটি অবরুদ্ধকরণ পদ্ধতিতে কোড করা সম্ভব।
সুতরাং উদাহরণস্বরূপ, এই উদাহরণটি একটি বইয়ে দেওয়া হয়েছিল আমি একটি ডাটাবেস থেকে ডেটা পাওয়ার একটি অ্যাসিনক্রোনাস পদ্ধতিতে পড়ছি।
http.createServer(function (req, res) {
database.getInformation(function (data) {
res.writeHead(200);
res.end(data);
});
});
কি হয় (যেমন আমি এটি বুঝতে পারি) হ'ল নোড ডাটাবেসগুলিতে কল করে, তারপরে কল স্ট্যাকের পরবর্তী যা কিছু হতে পারে তার প্রক্রিয়া চালিয়ে যায়। ডাটাবেস অনুরোধটি সম্পূর্ণ হয়ে গেলে, বেনামে কলব্যাক ফাংশনে ডেটা ভেরিয়েবল পপুলেটেড হবে এবং সেই ফাংশনটি কল স্ট্যাকটিতে যুক্ত হবে (এবং পরবর্তীকালে নোডের কাছে এলে এটি কার্যকর করা হবে)।
আমার প্রশ্ন হ'ল, ডাটাবেস অনুরোধটি ঠিক কীভাবে প্রক্রিয়াজাত করছে? অবশ্যই নোড এটি করতে পারে যখন ব্লক করতে হবে? ডাটাবেস অনুরোধ যত্ন নিচ্ছেন কি? অথবা যদি নোড কোনও বাহ্যিক সংস্থার একটি অ্যাসিনক্রোনাস এইচটিটিপি জিইটি অনুরোধের অপেক্ষায় থাকে তবে সেই অনুরোধটি কী গ্রহণ করছে যা নোডকে কল স্ট্যাক প্রক্রিয়াকরণ চালিয়ে যেতে এবং "অবরুদ্ধকরণ" হতে দেয়?
net
প্যাকেজ যখন HTTP পাওয়া যায় না।