इस सवाल का पहले से ही एक उत्तर है: < / P>
- 21 उत्तर
मैं अभी भी नया हूँ Node.JS और मैं GET विधि का उपयोग करके एक REST API कॉल करने का प्रयास कर रहा हूं। मैं इस से 'अनुरोध' पैकेज का उपयोग करता हूं कॉल वास्तव में काम करता है लेकिन जब मैं अन्य। जेएस फ़ाइल से प्रतिक्रिया निकालने की कोशिश करता हूं, तो मुझे 'अपरिभाषित' मिलता है।
यह मेरा पहला 'first.js' है
Var अनुरोध = आवश्यकता ('अनुरोध'); Var प्रथम = फ़ंक्शन () {}; First.prototype.getValue = फ़ंक्शन (मान) {var thpath = somePath + value; Var पोस्ट-हेडर = {'सामग्री-प्रकार': 'x-www-form-urlencoded'}; Var विकल्प = {url: 'https: //' + thpath, विधि: 'GET', हेडर: पोस्ट-हेडर,}; Var डेटा_रेक = ""; अनुरोध (विकल्प, फ़ंक्शन (त्रुटि, प्रतिक्रिया, निकाय) {यदि (! त्रुटि और amp; amp; response.statusCode == 200) {data_rec = JSON.parse (body); console.info (डेटा_रेक); वापसी डेटा_रेक;} और वापसी "प्राप्त करने में विफल";}); }; मॉड्यूल। एक्सपोर्ट्स = पहले;
यह मेरा 'second.js' है
var first = require ('./ first'); Var उदाहरण = नया पहला (); Var val1 = instance.getValue (कुछ वैल्यू); console.info (VAL1);
'first.js' से 'console.info (data_rec)' एक JSON देता है (जिसका अर्थ है कि कॉल काम कर रहा है)। हालांकि, 'console.info (val1)' से 'second.js' रिटर्न 'अपरिभाषित' क्या कोई समाधान ढूंढ सकता है?
अपडेट: मैं पैकेज का उपयोग करके समाधान प्राप्त कर सकता हूं।
var val1 = instance.getValue (कुछ वैल्यू); console.info (VAL1);
example.getValue
एक अतुल्यकालिक विधि है। उत्तर जावास्क्रिप्ट vm अभिप्राय के लिए प्रतीक्षा नहीं करता है, यह सिर्फ अगले पंक्ति यानी console.info (val1) के साथ चला जाता है;
अजाक्स अनुरोध को समय लगता है और कुछ समय बाद ही प्रतिक्रिया आती है, और सफलता फ़ंक्शन को ट्रिगर करता है। तो val1 अपरिभाषित है
अनुरोध (विकल्प, फ़ंक्शन (त्रुटि, प्रतिक्रिया, शरीर) {यदि (! त्रुटि और amp; response.statusCode == 200) {data_rec = JSON.parse (body ); Console.info (data_rec); वापसी डेटा_रेक;} और वापसी "प्राप्त करने में विफल";});
देखें कि console.info (data_rec);
सफलता समारोह के अंदर दी गई है, सफलता फ़ंक्शन कुछ ऐसी है जिसे प्रतिक्रिया के बाद कहा जाता है सफलतापूर्वक पुनर्प्राप्त किया जाता है
No comments:
Post a Comment