anon5114
@anon5114

Как установить время таймера из ответа json?

Пытаюсь получить из 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.
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Вам нужно
  1. Останавливать предыдущий таймер
  2. Создавать новый с новым значением интервала
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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