यदि आप क्लाइंट-साइड जावास्क्रिप्ट निष्पादन के बारे में बात कर रहे हैं, तो आप सही हैं (जब तक ब्राउज़र आपके अनंत लूप को रोकने का निर्णय नहीं लेता)।
क्लाइंट-साइड जावास्क्रिप्ट एकल थ्रेड किया गया है, इसलिए एक एसिंक्रोनस AJAX कॉल कॉलबैक निष्पादित नहीं किया जाएगा जब तक कि निष्पादन की मुख्य धारा पूरी नहीं हो जाती है और AJAX ईवेंट के लिए जावास्क्रिप्ट निष्पादन की एक नई स्ट्रीम शुरू की जा सकती है जिसके परिणामस्वरूप आपका AJAX कॉलबैक कॉल हो जाएगा समारोह।
this post में सभी घटनाओं को क्रमबद्ध करने के लिए जावास्क्रिप्ट एक ईवेंट कतार का उपयोग कैसे करता है, इसके बारे में आप और अधिक पढ़ सकते हैं।
संपादित
मैं अपने संपादित कि आप सर्वर साइड Node.js, नहीं ब्राउज़र कोड के बारे में बात कर रहे हैं से देखते हैं। डिफ़ॉल्ट रूप से, आपका कॉलबैक किसी नए थ्रेड में नहीं चल रहा है, इसलिए यह db.get()
फ़ंक्शन कॉल के हिस्से के रूप में तुरंत निष्पादित होगा या निष्पादन की आपकी वर्तमान स्ट्रीम समाप्त होने तक अधिक संभवतः निष्पादित नहीं होगा और फिर db.get()
कॉल भी पूरा हो जाएगा और तो कॉलबैक निष्पादित किया जा सकता है।
node.js कुछ स्थितियों में धागे का उपयोग करता है और आंतरिक रूप से धागे का उपयोग करता है, लेकिन इस तरह की स्थिति में नहीं।
यहां node.js. में थ्रेडिंग पर good article है।
क्या आपने इसे आजमाया? –
क्या आप क्लाइंट या सर्वर जावास्क्रिप्ट के बारे में बात कर रहे हैं? – jfriend00
हम नोड.जेएस के साथ सर्वर पक्ष का मतलब करेंगे लेकिन मुझे लगता है कि यह वही होगा, क्या मुझे गलती है? जावास्क्रिप्ट हमेशा एकल धागा है? – mlihp