初学者Node.js传递json作为函数的回调[复制]

问题描述 投票:0回答:1

这个问题在这里已有答案:

道歉,因为我有点像初学者,但我试图将get请求放在函数中的变量中,以便我可以在另一个函数中调用它并让它返回JSON。

function getRequest (url, response) {
var response = request.get({
            url: url,
            json: true,
            headers: {'User-Agent': 'request'}
          }, (err, res, data) => {
            if (err) {
              console.log('Error:', err);
            } else if (res.statusCode !== 200) {
              console.log('Status:', res.statusCode);
            } else {
              console.log(data);
            }
    });
}

然后我有var result = getRequest(urlPlaylist);并让它从函数返回JSON。有人可以帮我弄清楚如何构建回调吗?谢谢!

node.js httprequest
1个回答
1
投票

请求是异步的,因此您不能只返回它。尝试这样的事情,在json(数据)准备就绪时传递回调。

function getRequest (url, cb) {
  request.get({
    url: url,
    json: true,
    headers: {'User-Agent': 'request'}
  }, (err, res, data) => {
    if (err) {
      console.log('Error:', err);
    } else if (res.statusCode !== 200) {
      console.log('Status:', res.statusCode);
    } else {
      cb(data);
    }
  });
}

getRequest(urlPlaylist, function (json) {
  console.log(json);
});
© www.soinside.com 2019 - 2024. All rights reserved.