Sergey_Guryanov
@Sergey_Guryanov
Веб разработка

Вывод данных на график через API?

Для вывода данных (дата и цена) на график курса акций, полученных через API Мосбиржи, использую этот код:
(async () => {  // асинхронная функция

    for (start = 0;; start += 500) {   

  let url = 'https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/SBER/candles.json?interval=24&start=' + start;
  let response = await fetch(url); 
  let data = await response.json();

  let formattedData = data.candles.data.map(item => ({  // благодаря объекту map вывожу на график каждый элемент массива
    time: item[7].split(" ")[0],
    value: item[1],
  }));
  let Itemlength = data['candles']['data'].length
  
if (Itemlength < 500) break; // пока не достигнут последний блок данных (их меньше 500), параметр start в url увеличивается на 500
areaSeries.setData(formattedData) // функция графика
}
})();


Однако по этому url выдается только 500 значений и для получения полного объема данных нужно увеличивать параметр start в url, на 500 при каждой итерации. Этот код выдает мне только последний блок данных.
Как можно изменить цикл, чтобы вывести все данные на график?
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 1
RAX7
@RAX7
Попробуй так:
(async () => {
  const allData = [];
  for (start = 0; ; start += 500) {
    // ...
    
    allData.push(...formattedData);

    if (Itemlength < 500) break;
  }
  
  areaSeries.setData(allData);
})();
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы