JS中的https.get的返回结果



我正在尝试在JS中编写一个函数,该功能可以返回我从https.get请求中获得的文本。

我找到了此代码以显示我想要的文本:

const https = require('https')
https.get('http://mysiteweb.com/info', (resp) => {
  let data = ''
  let value = ''

  // A chunk of data has been recieved.
  resp.on('data', (chunk) => {
    $data += chunk;
  })
  // The whole JSON response has been received, get the "value"
  resp.on('end', () => {
    value = JSON.parse(data).value
  // print the text I want to return
  console.log(value)
  })
})

,但目的是编写一个函数,该函数会根据我提出的URL返回"值"。类似:

function getValueFromUrl(url) {
// code on top to get "value"
 return value }

但是,在我返回它的所有尝试之后,我无法访问" value"。我怎样才能做到这一点 ?我是新来的。非常感谢

,因为http调用是异步的,您不能简单地返回 value,因此您需要提供一个呼叫,该回调将在请求完成后打电话。

>
const https = require('https')
function getValueFromUrl(url, cb) {
  https.get(url, (resp) => {
    let data = ''
    let value = ''
    resp.on('data', chunk => data += chunk);
    resp.on('end', () => {
      value = JSON.parse(data).value
      cb(null, value);
    });
  }).on('error', (err) => {
    cb(err);
  });
}
getValueFromUrl('http://mysiteweb.com/info', (err, value) => {
    if (err) return console.error(err);
    console.log(value);
});

另外,您可以使用诺言或等待/异步而不是回调。

最新更新