在Javascript中使用setInterval请求并保存API数据

在Javascript中使用setInterval请求并保存API数据,javascript,node.js,request,setinterval,Javascript,Node.js,Request,Setinterval,我一直在尝试使用nodejs中的请求模块从API接收的数据填充我的var,并使用setInterval每隔一段时间更新我的var。但是,我无法将数据更新或保存到全局变量中。当控制台记录var时,它只显示空的arrayy[]。请帮帮我 设置间隔函数{ 请求uesthttps://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,XRP&tsyms=美元,日元, 函数错误、响应、正文{ 变量更新=函数{ dataCollections=

我一直在尝试使用nodejs中的请求模块从API接收的数据填充我的var,并使用setInterval每隔一段时间更新我的var。但是,我无法将数据更新或保存到全局变量中。当控制台记录var时,它只显示空的arrayy[]。请帮帮我

设置间隔函数{ 请求uesthttps://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,XRP&tsyms=美元,日元, 函数错误、响应、正文{ 变量更新=函数{ dataCollections=JSON.parsebody; }; 使现代化 }; }, 4000; var-dataCollections=[] dataCollections.pushJSON.parsebody

编辑:

在间隔内调用你的更新价格板方法,它将每次更新/刷新你的价格板

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...
}
fsyms=BTC、ETH、XRP和tsyms=USD、JPY、, 方法:获取, 超时:10000, 下面是:对, 最大重定向:10 },函数错误,响应,正文{ if!error&&response.statusCode==200{ 控制台。logbody; dataCollections.pushJSON.parsebody; }否则{ console.log'error'+response.statusCode; } };
}, 4000;

您没有将响应数据推送到您的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.push(JSON.parse(body));      
      };
      update();
  });
}, 4000);

var dataCollections = [];

谢谢你的回答!当我尝试关联数据收集时,它仍然显示一个空数组。。另外,我不想一直将数据推送到数组中,因为我试图使用传递给EJS的var,它将像价格板一样实时工作。有更好的解决方案吗??我也计划在EJS上使用setInterval每次刷新我的价格板页面。。
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 = [];