Я использую сокет для извлечения данных из бэкэнда, который используется для рендеринга моей гистограммы chart.js. Цель состоит в том, чтобы задержать время между каждым баром, который отображается на графике. Я использовал setTimeout внутри цикла for для достижения этой цели. Все отлично работает при первом вводе. Но количество баров дублируется при каждом нажатии кнопки отправки. так, например, первые одиночные бары появляются с задержкой. Но во второй раз, если мы введем значение 2, дублирующий столбец появится вместе, и в третий раз введенные 3 столбца появятся, он продолжится следующим образом. Я действительно смущен тем, почему это происходит. Любая помощь высоко ценится
Я попробовал в основном все, что мог, чтобы понять проблему, Async - ждите. отсоединение для цикла с заданным временем ожидания. Кажется, ничто не объясняет, почему это происходит.
Цикл, о котором идет речь
for (let x = 0; x < data.length; x++) {
console.log("value of x outsite", x);
setTimeout(() => {
this.chartArray.data.datasets.forEach((dataset) => {
dataset.data.push(data[x]);
});
this.chartArray.update();
}, 1000 * (x + 1));
Цель состоит в том, чтобы получить только один бар для каждого значения с задержкой в последующих барах.