首页 > 解决方案 > 如何自动刷新 API 数据?

问题描述

我在这里搜索我应该如何从 api 刷新我的数据,我看到了一些东西,setInterval()但我真的不知道。下面是我为获取股市数据所做的 api,我希望它是实时的,而无需刷新页面即可实时查看。首先是我用来在网络上显示数据然后发布以通过符号搜索它的获取,这是使用 req.body.stock_ticker 的地方。

app.get('/stocks.html', function (req, res) {
    call_api( function(doneAPI) {
        res.render('stocks',{
            stock: doneAPI
        });
    },'GOOG');
});

//Set handlebar index POST route.
app.post('/', function (req, res) {
    call_api(function(doneAPI) {
        //posted_stuff = req.body.stock_ticker;
        res.render('stocks',{
            stock: doneAPI,
        });
 }, req.body.stock_ticker);
    
});

//create call_api function
function call_api(finishedAPI, ticker){
//API KEY zzz
    request('https://cloud.iexapis.com/stable/stock/' + ticker + '/quote?token=zzz',{json:true},(err, res,body)=>{
  if(err) {return console.log(err);}
  if(res.statusCode === 200)
  finishedAPI(body);
});
};

标签: javascriptnode.jsjson

解决方案


如果你想每x毫秒调用一次 api,你需要调用函数setInterval

setInterval(() => {
    call_api(finishedAPI, ticker);
}, <time-in-milliseconds>)

所以这段代码将运行call_api(finishedAPI, ticker)<time-in-milliseconds>


推荐阅读