Я пытаюсь создать граф области стека из значений, которые я получаю из api. Мой первый api дает мне ряд дат. Например: 1 июня - 7 июня. Мой второй api дает мне значения, необходимые для графика. Данные выглядят так:Как вызвать api снова после интервала очистки
Моя идея - вызвать api и нажимать значения счетчиков для функции каждый раз для функции. Но почему-то я не мог сделать это возможным, поэтому я вызываю api один раз на каждые 100 мс и захватываю все данные и запуская график. Теперь, когда я хочу вызвать второй api после завершения одной итерации, вызов прерывает график. Пожалуйста, помогите мне исправить это.
d3.json('/service/dates', function(error, dates) {
var dran = dates;
if (dates != null) {
sDt = new Date(dates.st);
eDt = new Date(dates.et);
var i = 0;
var start = function() {
if (sDt > eDt) {
clearInterval(interval);
$('.wrapper').trigger('newPoint');
return;
}
var sDate = sDt.toISOString();
var eDate = new Date(sDt.setMinutes(sDt.getMinutes() + 30)).toISOString();
//Calling the api for graph values
d3.json("/service/dat?s=" + sDate + "&e=" + eDate, function(error, results) {
if (results != null) {
numbers = numbers.push(results.numbers);
values = values.push(results.values);
}
});
i++;
}
var interval = setInterval(start, 100);
}
});
}
Вы вызываете 'setInterval', вам нужно также очистить дважды. – 11thdimension
Я имею в виду, что вы вызываете его два раза, второй вызов внутри 'func' никогда не очищается. – 11thdimension
@Haravi Почему вы отредактировали код? Это делает вопрос совершенно бесполезным и оставляет принятый ответ болтающимся без какого-либо смысла. – altocumulus