Пытаюсь получить из json время, для того чтоб использовать в setInterval как время до следующего обновления контента. Но никак немогу присвоить значение полученное из json к глобальной переменной timeRemain. Значение работает внутри самой функции, а как сделать чтоб работала за пределами немогу понять.
Ожидалась такая работа скрипта:
Получаем из json время в секундах и некоторые другие данные.
Прикручиваем полученное время к SetInterval
Через некоторое время получаем новые данные и новое время обновления, и так по кругу.
var timeRemain = 10000; // переменная у которой не удаётся изменить/установить значение
function getData() {
var dataUpdate = new XMLHttpRequest();
dataUpdate.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var data = JSON.parse(this.responseText);
timeRemain = data["remain"] * 1000; // значение для переменной
}
};
dataUpdate.open("GET", "data.json", true);
dataUpdate.send();
}
document.addEventListener("DOMContentLoaded", function() {
getData();
});
setInterval(getData, timeRemain); // время полученное из json
В JSON поле remain выдает секунды, указывающие через сколько времени будут новые данные в json.