2012-03-03 9 views
8

क्या node.js में http.get विधि का एक सिंक्रोनस संस्करण है?नोड.जेएस: क्या node.js में 'http.get` विधि का एक तुल्यकालिक संस्करण है?

कुछ की तरह:

http.getSync({ 
    host: 'google.com', 
    port: 80, 
    path: '/' 
}, function(response){ 

}); 

console.log(response) 

कभी कभी यह बहुत उपयोगी होगा।

+0

तुल्यकालिक आई/ओ कभी कभी उपयोगी है, लेकिन यह घटना चालित क्रम Node.js है कि की मंशा नहीं है - वह गति के लिए बनाया गया है, न शान्ति! =) – maerics

उत्तर

-6

नहीं, ऐसा नहीं है। मैं ईमानदारी से उपयोग के मामले को नहीं देखता हूं।

यदि आप अपने उपयोग के मामले या किसी समस्या को हल करने का प्रयास कर रहे हैं, तो मैं इसका उत्तर देने का प्रयास करूंगा।

+8

किसी उपयोग के मामले के लिए इसके बारे में: एप्लिकेशन प्रारंभ करने से पहले कॉन्फ़िगरेशन डेटा को खींचने के लिए सर्वर प्रारंभिकरण के दौरान http अनुरोध करना। निश्चित रूप से, आप इस असीमित तरीके से निपटने के लिए तर्क जोड़ सकते हैं लेकिन एक तुल्यकालिक फैशन में कार्यान्वित करना आसान है। – VinnyD

+2

5000 पंक्तियां हैं, प्रत्येक पंक्ति के लिए http अनुरोध को कॉल करने की आवश्यकता है: - /, id = 0; var x = function() {http.get ('http: // foo', function() {id ++; if (id < पंक्तियां। लम्बाई) x();}); } एक्स(); ..... या x.forEach (फ़ंक्शन() {http.get ('http: // foo', फ़ंक्शन() {end!});}); .... प्रत्येक और कम कोड के लिए बहुत साफ कॉल है। यह असंभव है कि बनाए गए सभी सॉफ़्टवेयर एसिंक हैं, पूरी तरह से अज्ञानी है। 14 से अधिक विभिन्न भाषाओं में विकसित किया गया था और मैं कह सकता हूं कि हमेशा ऐसे समय होते हैं जब आपको सिंक्रनाइज़ करने के लिए फ़ंक्शन की आवश्यकता होती है। –

+1

यह 2012 में – vikramaditya234

2

sync-request लाइब्रेरी है जो उपयोग करने में बहुत आसानी से है। आंतरिक रूप से यह एक बच्चे की प्रक्रिया को सिंक्रनाइज़ करता है और then-request का उपयोग करता है, इसलिए विकल्प उस लाइब्रेरी के समान होते हैं।

जैसा कि अन्य ने कहा है, मैं आपके रनटाइम तर्क में इसका उपयोग करने के खिलाफ सावधानी बरतूंगा। हालांकि, यह विन्यास लोड करने के लिए बहुत आसान हो सकता है।

यदि आप कॉन्फ़िगरेशन लोड कर रहे हैं, तो कोई अन्य रणनीति आपकी प्रक्रिया शुरू करने के लिए एक अलग स्क्रिप्ट का उपयोग कर सकती है। उदाहरण:

var http = require("http"), 
    cp = require("child_process"); 

// Starting process 
if (process.argv.length < 3) { 
    return http.get("http://www.google.com/index.html", function(res) { 
     var config = { 
      statusCode : res.statusCode, 
      headers : res.headers 
     }; 

     cp.fork(module.filename, [JSON.stringify(config)]); 
    }); 
} 

// Config provided 
var config = JSON.parse(process.argv[2]); 

console.log(config.statusCode); 
संबंधित मुद्दे