gpt4 book ai didi

javascript - ComponentDidMount 等不会按顺序触发函数

转载 作者:行者123 更新时间:2023-11-28 16:43:52 27 4
gpt4 key购买 nike

我注意到 componentDidMount 有时不会按顺序触发。

componentDidMount(){
function1();
function2();
function3();
}

我注意到函数 2 有时在函数 1 完成之前不一致地启动。截至目前,我只是将函数 2 放在代码末尾的函数 1 中。但是,有更好的方法吗?为什么要这样做?

最佳答案

问题中的代码肯定会按该顺序调用这些函数。

但是,听起来这些函数是异步工作的。如果是这样,该代码将启动所有三个函数的工作(按顺序),然​​后该工作将重叠,并且没有理由由 function2 开始工作。在 function1 开始工作之前无法完成确实如此。

在这种情况下,如果您愿意,您需要在它们之间提供一些协调 function2等待开始其进程,直到 function1已完成(对于 function2function3 依此类推)。例如,如果他们返回 promise ,那么:

function1()
.then(() => function2())
.then(() => function3())
.catch(error => {
// ...handle/report error...
});

我假设所有三个函数都希望在不带参数的情况下调用。

如果他们采取回调,那么:

function1(() => {
function2(() => {
function3();
});
});

由于回调 API 报告错误的方式各不相同,因此我没有尝试在最后一个示例中包含错误处理。

关于javascript - ComponentDidMount 等不会按顺序触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60791220/

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