从功能要求的NodeJS返回JSON

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

我读了一些文章的这个位置(回调),但我还是没有真正充分了解如何解决我的问题。所以我希望有人在这里可以帮助我与我的,我会更好地得到它。

简单的放我想要的ID我第一次请求获取用于第二请求。

我一般是新来的JavaScript和的NodeJS。

function idRequest(name) {
    var options = {
        ...
    };
    
    function callback(error, response, body) {
        if (response.statusCode == 200 && !error) {
           const info = JSON.parse(body);
           //console.log(info.accountId);
           return info.accountId;   
       }    
    }
    request(options, callback);
}

function requestById(accountId) {

    var options = {
        ...
    };

    function callback(error, response, body) {
        if (response.statusCode == 200 && !error) {
            const info = JSON.parse(body);
            console.log(info);
        }   
      }
    
    request(options, callback);
}

var id = idRequest('..');
requestById(id);
javascript node.js callback request
2个回答
0
投票

通过从第一功能和里面解决回调返回一个承诺尝试,所以一旦得到解决,您可以使用它,然后触发第二功能

function idRequest(name) {
  var options = {
    ...
  };

  function callback(error, response, body) {
    if (response.statusCode == 200 && !error) {
      const info = JSON.parse(body);
      //console.log(info.accountId);
      return info.accountId;
    }
  }
  return new Promise(function(resolve, reject) {
    resolve(request(options, callback))

  })
}

function requestById(accountId) {

  var options = {
    ...
  };

  function callback(error, response, body) {
    if (response.statusCode == 200 && !error) {
      const info = JSON.parse(body);
      console.log(info);
    }
  }

  request(options, callback);
}

var id = idRequest('..').then(function(data) {
  requestById(data);
});

0
投票

因为回调是一个异步调用,所以var idundefined,当你调用requestById(id);

所以要么你可以使用承诺方法,通过@brk解决,或者您可以直接从第一回调打电话给你requestById(id)功能。

© www.soinside.com 2019 - 2024. All rights reserved.