gpt4 book ai didi

Javascript。异步函数的执行顺序

转载 作者:行者123 更新时间:2023-12-04 09:38:12 24 4
gpt4 key购买 nike

刚才和我的组长讨论了一下,对他的话有些怀疑,寻求专业人士的帮助。

例如,我们有三个异步函数

const fetchViewers = async () => { 
const viewers = await fetch(...);
this.setState({ viewers });
};
const fetchPolls = async () => {
const polls = await fetch(...);
this.setState({ polls });
};
const fetchRegistrants = async () => {
const registrants = await fetch(...);
this.setState({ registrants })
};

我们以这样的顺序调用它们
const init = () => {
fetchViewers();
fetchPolls();
fetchRegistrants();
}

假设吸引观众比其他两个人花费的时间要多得多,
我的问题,是否有任何理由放置 fetchViewers最后的?
由于我们不是在等待它们在 init 中得到解决函数,我很确定这无关紧要,因为它只影响它在堆栈中的顺序,并且调用将由 DOM 进行。
如果确实重要,请解释更详细的原因。

最佳答案

异步函数仍然同步运行,直到第一个 await .因此,如果您在实际异步操作之前进行一些长时间运行的准备工作,那么顺序确实很重要。此外,如果异步任务正在访问共享资源(例如,它们正在锁定同一个数据库),则顺序可能会影响任务并行运行的程度(尽管这超出了 JS 的范围)。然而,在给出的情况下,我真的看不到同步代码/共享资源(带宽除外,但这应该无关紧要),所以应该无关紧要。要给出绝对的答案,请对调用进行随机播放(6 种组合,所以工作量不大)并进行测量。

关于Javascript。异步函数的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62452669/

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