Запрос и сохранение данных API, используя setInterval в Javascript - PullRequest
0 голосов
/ 25 сентября 2019

Я пытался заполнить мою переменную данными, полученными из API с помощью модуля запроса в nodejs, и обновлять мою переменную каждый определенный период времени с помощью setInterval.Однако я не могу обновить или сохранить данные в глобальной переменной.Когда консоль записывает журнал var, он показывает только пустой массив [].пожалуйста, помогите мне!

setInterval(function() {
 request("https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,XRP&tsyms=USD,JPY", 
 function(error, response, body) {
      var update = function(){
       
       dataCollections = JSON.parse(body);
      
      };
      update();
  });
}, 4000);

var dataCollections = [];

Ответы [ 3 ]

0 голосов
/ 25 сентября 2019
var dataCollections = [];
var loopRequest = setInterval(function () {
request({
url: "https://min-api.cryptocompare.com/data/pricemulti? 

fsyms = BTC, ETH, XRP & tsyms = USD, JPY ", метод:" GET ", время ожидания: 10000, followRedirect: true, maxRedirects: 10}, функция (ошибка, ответ, тело) {if (!error && response.statusCode == 200) {console.log (body); dataCollections.push (JSON.parse (body));} else {console.log ('error' + response.statusCode);}});}4000);

0 голосов
/ 25 сентября 2019

Вы не отправляете данные ответа в свою переменную, обратитесь к приведенному ниже коду, который делает это:

setInterval(function() {
 request("https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,XRP&tsyms=USD,JPY", 
 function(error, response, body) {
      var update = function(){

       dataCollections.push(JSON.parse(body));      
      };
      update();
  });
}, 4000);

var dataCollections = [];
0 голосов
/ 25 сентября 2019

dataCollections.push(JSON.parse(body));

Редактировать:

Позвоните вам, чтобы обновить ценовой метод в пределах интервала, он будет обновлять / обновлять вашу ценовую доску каждый раз

setInterval(function() {
 request("https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,XRP&tsyms=USD,JPY", 
 function(error, response, body) {
      var update = function(){

       updatePriceBoard(JSON.parse(body));  //It will Update/Refresh your price board    
      };
      update();
  });
}, 4000);

function updatePriceBoard(){
  //Your Business logic...
}
...