gpt4 book ai didi

Javascript 异步状态更新

转载 作者:行者123 更新时间:2023-12-03 02:01:39 25 4
gpt4 key购买 nike

我正在尝试思考此用例的最佳实践:

我有一个内部状态:results[],它将用于在渲染中显示数据。

然后,我需要并行调用 3 个 API,然后将它们合并并排序到 results[] 中,然后再最终渲染。

我正在使用 axios 来调用 API,但我不想使用 axios.all,因为我需要在 3 个 api 返回时显示结果[],这样看起来更快。

我遇到了问题,因为每次我使用 this.setState() 用新数据更新 results[] 时,后一个操作总是看到旧的 results[]; this.setState() 不会立即应用..

最好的方法是什么?

最佳答案

由于 Javascript 在单线程上运行,因此永远不会出现竞争条件。可以保证任一时间只运行一个异步回调,因为单个线程无法同时执行这两个回调。下一个异步回调将安排在稍后运行。在一次函数调用中,您可以放心,您是唯一处理某些数据的人。

数据可能在不同时间进入,但如果每次收到新数据时都简单地对数据进行合并和排序,那么这将是原子的。

关于Javascript 异步状态更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49981071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com