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

时间:2018-03-02 23:56:13

标签: node.js httprequest

道歉,因为我有点像初学者,但我试图将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。有人可以帮我弄清楚如何构建回调吗?谢谢!

1 个答案:

答案 0 :(得分: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);
});