javascript - Using more than one unirest requests with Sails -


मेरे पास निम्न कोड है

  अनुक्रमणिका: फ़ंक्शन (रिक, रिस) {var अनुरोध = Unirest.get ("https://poker.p.mashape.com/index.php?players=4")। शीर्षलेख ({"एक्स-मैशप-प्राधिकार": "xxxxxxxxxxxxxxxxx"})। अंत (फ़ंक्शन (प्रतिक्रिया ) {खिलाड़ियों = प्रतिक्रिया; शो, शोडाउन_टाटल = खिलाड़ी.शोडाउन। लांघ; शोडाउन = एरे ();}); console.log (खिलाड़ियों); // एक JSON प्रतिक्रिया res.view भेजें ({हैलो: 'विश्व', // खिलाड़ी: खिलाड़ी}); },   

अगर मैं res.view बिना किसी भी प्राप्त करें को जोड़ता हूं, तो यह बहुत अच्छा काम करता है, लेकिन मैं उन चर को भेजना चाहता हूं देखें और एक और अस्थिर अनुरोध जोड़ने में सक्षम हो

आपकी मदद के लिए धन्यवाद

इसी तरह Node.js में काम करता है।

असल में, जब एक ऑपरेशन ASAP का मूल्यांकन नहीं करता है, नोड इसके लिए इंतजार नहीं करता है यह सिर्फ कहते हैं, "ठीक है, कोई चिंता नहीं, बस मुझे बताओ जब आप कर रहे हैं" .. की तरह।

बात, अपने कोड में, आप नहीं बताते हैं जब आपके अनुरोध प्राप्त करें नोड पूरा हो गया है। अनुरोध फ़ंक्शन यहां तक ​​कि डेटा लाने के बारे में सोचने से पहले क्लाइंट को आप दृश्य को दूर ही फेंक दें।

नोड का इंतजार कैसे करें ?

आपके पास कुछ विकल्प हैं या तो, इसे कॉलबैक फ़ंक्शन दें (ऐसा करें जब आप कर लें), या आपको अपने कार्यों को घोंसला करना होगा वे दोनों वास्तव में एक ही चीज़ की तरह हैं।

मैं आपको एक समाधान दिखाता हूँ, नेस्टेड फ़ंक्शन :

  var urlOne = "https : //poker.p.mashape.com/index.php?player = 4 ", urlTwo =" http: //some.other.url ", हेडर = {" एक्स-मैशप-प्राधिकार ":" xxxxxxxxxxxxxxxxx "}; // भागो पहले अनुरोध unirest.get (urlOne) .आडरर्स (हेडर) .end (फ़ंक्शन (प्रतिक्रिया) {खिलाड़ियों = प्रतिक्रिया; शो; showdown_total = players.showdown.length; showdown = Array (); // भागो दूसरा अनुरोध unirest .net (यूआरएल दो) .आडरर्स (हेडर) .एड (फ़ंक्शन (प्रतिक्रिया) {someVar = response.body; // क्लाइंट res.view ({खिलाड़ियों: खिलाड़ियों, कुछ अन्य: someVar});} के लिए मेरे सभी डेटा दिखाएँ ;});   

अन्य समाधान:

  • यदि आप फ़ंक्शन को घोंसले नहीं करना चाहते हैं, तो उन्हें चलाने के लिए एक कॉलबैक दें किया जाता है।
  • एसिंक्रोनस कोड से निपटने के लिए एक मॉड्यूल का उपयोग करें, उदाहरण के लिए Async कहा जाता है।

    मैं आपको कॉलबैक के बारे में अधिक पढ़ें , एसिंक्रोनस कोड और नोडज से सीधे बाहरी पुस्तकालयों पर कूदने से पहले।

Comments

Popular posts from this blog

c - Mpirun hangs when mpi send and recieve is put in a loop -

python - Apply coupon to a customer's subscription based on non-stripe related actions on the site -

java - Unable to get JDBC connection in Spring application to MySQL -