NodeJS 为什么我的finnhub.io请求每次都返回相同的响应?

2jcobegt  于 2023-03-01  发布在  Node.js
关注(0)|答案(1)|浏览(108)

我每秒都会发出一个股票价格的API请求,每次都得到相同的响应,当我刷新页面时,我会得到一个新的响应,但无论我重复调用多少次,它都不会改变。
使用“finnhub”时会发生这种情况,但每次使用polygon.io API时都会发生变化。然而,polygon.io会给我15分钟的延迟数据,因此无法工作。
为了发出请求,我使用了axios node.js包。

ApiRequest = function () {
  const currentPriceURL = `https://finnhub.io/api/v1/quote?symbol=SPY&token=` + API_KEY;

  axios.get(currentPriceURL)
    .then(response => {

      // record price of SPY
      var price = response.data.c;
      console.log("price= " + price);
    }).catch(error => console.error(`Error: ` + error));
} // end of ApiRequest function

// repeat every second
let DisplaySpyPrice_Timer = setInterval(ApiRequest, 1000);

为什么一个API需要页面刷新才能更新,而另一个不需要?

eufgjt7s

eufgjt7s1#

不是你的代码问题,polygon.io没有更新数据。
我测试了你的代码与切换切换符号。它的价格变化的每一次。

const axios = require('axios')

const API_KEY = '<your API Key>'
let even = true
ApiRequest = function () {
    const stockSymbol = (even) ? 'SPY' : 'AAPL'
    const currentPriceURL = `https://finnhub.io/api/v1/quote?symbol=${stockSymbol}&token=` + API_KEY;
    even = !even;

    axios.get(currentPriceURL)
        .then(response => {

            // record price of SPY
            var price = response.data.c;
            console.log("price= " + price);
        }).catch(error => console.error(`Error: ` + error));
} // end of ApiRequest function

// repeat every second
let DisplaySpyPrice_Timer = setInterval(ApiRequest, 1000);

结果

$node get-stock-price.js
price= 396.38
price= 146.71
price= 396.38
price= 146.71
price= 396.38
price= 146.71

相关问题