多次响应实时数据获取

Posted

技术标签:

【中文标题】多次响应实时数据获取【英文标题】:React live data fetching on multiple occasions 【发布时间】:2021-11-21 14:25:18 【问题描述】:

当 API 中的货币价格发生变化时,我正在尝试升级我的应用更新状态,截至目前,我正在根据请求进行一次 API 调用,但我希望应用在 API 价格发生变化时实时更新改变,我想过使用 setTimeout 并多次执行 API 调用,但这最终会使性能下降并且内存将开始填满,另一方面,并​​非 API 调用中的所有键都在更改,如名称或ID,所以我不需要每次都存储整个信息,我将如何做到这一点?谢谢!

 function CENTRAL_HUB() 
    const API_URL =
        'https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1&sparkline=false';
    const [coins, setCoins] = useState([]);

    useEffect(() => 
        axios
            .get(API_URL)
            .then((res) => 
                console.log(res);
            setCoins(res.data);
            )
            .catch((err) => 
                console.log(err);
            );
    , []); ```
 
    

【问题讨论】:

您将不得不使用 setInterval 调用。唯一的另一种方法是,如果 api 具有您可以订阅的套接字连接。 【参考方案1】:

一种可能的解决方案 - 有一个 npm 包 cron,它允许您在计划的作业触发时执行一个函数。

【讨论】:

以上是关于多次响应实时数据获取的主要内容,如果未能解决你的问题,请参考以下文章

实时数据捕获的百分比

input事件中文触发多次问题研究

Firebase实时数据库单值监听器多次触发

PHP 实时获取文件大小

尝试使用 websockets 从 FastAPI 获取实时数据流时如何修复错误(不支持的升级请求。)?

可变的实时数据给出多个响应,给出来自 api 的旧响应,然后给出新的响应