@bqio
https://bqio.github.io/

Как сделать, чтобы скрипт дождался завершения функции?

var game = {
    users: [{}]
}

game.users[0].steamid = '76561198166206753';
game.users[1].steamid = '76561198166206756';

InventoryParse(game.users[0].steamid, '730');
console.log('Posle: ' + game.users[0].skins); //undefined

Почему undefined?
Сама функция:
function InventoryParse(SteamId, GameId)
{
    var rq = require('request');
    rq('http://steamcommunity.com/inventory/'+SteamId+'/'+GameId+'/2?l=english', function (error, response, body) {
        if (!error && response.statusCode == 200)
        {
            var json = JSON.parse(body);
            for (var i = 0; i < game.users.length; i++) {
                if (game.users[i].steamid == SteamId) {
                    game.users[i].skins = [];
                    for (var j = 0; j < json.assets.length; j++) {
                        game.users[i].skins.push(json.assets[j].classid);
                    }
                }
            }
            console.log('Do: ' + game.users[0].skins); //Главное здесь выводится, а там нет
        }
    });
}

88ce1f9792594a53abb11e85146a52f0.png
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Arik
Сделайте 3 аргумент для функции, и в нужном месте вызов ее. Тогда вызову будет вроде
InventoryParse(game.users[0].steamid, '730', function () {
console.log('Posle: ' + game.users[0].skins);
});


И про промисы можно почитать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы