2017-01-29 1 views
0

Я пытаюсь добавить массив из json-файла, который я получаю в качестве ответа на запрос существующего игрока объекта (который представляет каждый объект в массив, называемый игроками). Это возвращает пустой массив. Я понятия не имею, что я делаю неправильно. Я получаю ответ, но когда я хочу добавить его в объект игрока, он идет не так.Добавление массива из запроса GET к существующему объекту возвращает пустой массив, но получает ответ

Для полной проверки кода 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: [] } 

ответ

0

переместились player["gameLogs"] = log; внутри ГЭТ обратного вызова, как и в моей первоначальной версии.

Кажется, что никогда не было проблемы, я был консольным протоколированием до того, как обратный вызов завершил получение данных, поэтому он никогда не добавлялся к объекту в то время, когда я вызывал console.log

Смежные вопросы