【问题标题】:Adding array out of GET request to existing object returns empty array but getting response将 GET 请求中的数组添加到现有对象会返回空数组但得到响应
【发布时间】:2017-01-29 21:42:26
【问题描述】:

我正在尝试从我收到的 json 文件中添加一个数组,作为对现有对象播放器的响应请求(它表示名为 player 的数组中的每个对象)。这将返回一个空数组。我不知道我做错了什么。我收到了响应,但是当我想将它添加到播放器对象时,它出错了。

完整代码检查https://ide.c9.io/kyriediculous/learnyounode

文件:playergamelogs.js

PS.:我的代码可能很糟糕,欢迎任何提示。

谢谢大家

players.forEach(function(player) {
    var log = [];
    var id = parseInt(player.playerId,10);
    var url = "http://m.mlb.com/lookup/json/named.sport_hitting_game_log_composed.bam?game_type=%27R%27&league_list_id=%27mlb%27&player_id="+id+"&season=2016&sit_code=%271%27&sit_code=%272%27&sit_code=%273%27&sit_code=%274%27&sit_code=%275%27&sit_code=%276%27&sit_code=%277%27&sit_code=%278%27&sit_code=%279%27&sit_code=%2710%27&sit_code=%2711%27&sit_code=%2712%27";
    player["gameLogs"] = log; 
    // console.log(id);  
    request.get({
        url: url,
        json: true,
        headers: {'User-Agent': 'request'}
    }, function (err, res, data) {
        if (err) {
            console.log('Error:', err);
        } else if (res.statusCode !== 200) {
            console.log('Status:', res.statusCode);
        } else {
            data
           .sport_hitting_game_log_composed
           .sport_hitting_game_log
           .queryResults
           .row
           .forEach(function(game) {
               log.push(game);
           });
        }
    });
});

返回

kyriediculous:~/workspace $ node playergamelogs
{ firstName: 'DJ',
  lastName: 'LeMahieu',
 playerId: '518934',
 team: 'Colorado Rockies',
  gameLogs: [] }

【问题讨论】:

    标签: javascript arrays json node.js httprequest


    【解决方案1】:

    player["gameLogs"] = log; 移动到 get 回调中,就像我原来的版本一样。

    似乎从来没有问题,我在回调完成检索数据之前进行了控制台日志记录,因此在我调用 console.log 时它从未添加到对象中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      相关资源
      最近更新 更多