Задать вопрос
@vGrabko99
html, css, js, php, golang, mysql

Почему функция срабатывает только 1 раз?

Добрый день. Есть код
function game_info(token){
if(token != undefined){
    var xmlhttp = getXmlHttp();
    xmlhttp.open('POST', '/en/api/UserGameInfo', true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("salt=45trydfg43ASD3234ASDQrewrdsf&token="+token);
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            switch (xmlhttp.status) {
                case 200:
                    
                    var info = JSON.parse(xmlhttp.responseText);
                    bl_many.innerHTML      = many(info.many);
                    bl_gold.innerHTML      = info.gold;
                    bl_msg.innerHTML       = info.msg;
                    bl_lvl.innerHTML       = info.lvl;
                    healthValue.innerHTML  = info.hp;
                    energyValue.innerHTML  = info.energy;
                    ammoValue.innerHTML    = info.bp;
                    max_hp.innerHTML       = info.max_hp;
                    max_energy.innerHTML   = info.max_energy;
                    max_bp.innerHTML       = info.max_bp;
                    
                    
                    break;
                case 400:
                    document.location.href = '/';
                    break;
                case 403:
                    document.location.href = '/';
                    break;                
            }
        }
    };
    } else {
        document.location.href = '/';
    }
}
var token = getCookie('token');
setInterval(game_info(token), 1000);

По идее функция game_info должна быть вызвана каждую секунду но вызывается она только один раз при загрузке скрипта. Дебагер молчит. В чём проблема ?
  • Вопрос задан
  • 255 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@ollisso
> setInterval(game_info(token), 1000);

Данная строка не вызывает фунцию game_info раз в секунду, а :
1. вызывает функцию game_info(token)
2. результат функции (у вас - "ничто") - вызывает раз в секунду

Вам же нужно так:
setInterval(function() {
game_info(token)
}, 1000);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы