与await语句执行顺序不一致
P粉691461301
P粉691461301 2023-09-12 13:42:02
0
1
384

我在代码的执行序列中遇到了意外行为。这是代码片段:

console.log("1");
await reloadScenarios();
console.log("2");

const reloadScenarios = () => {
    if (token) {
        getScenario()
            .then(({ scenarios }) => {
                console.log("3");

                const transformedScenarios = scenarios.map(option => ({
                    scenario: option.name,
                    description: option.categories.name,
                    value: option._id
                }));

                setOptions(transformedScenarios);
                // setSelectedOption(transformedScenarios[0]?.value || null);
            })
            .catch((error) => {
                console.error('Failed to fetch scenario options:', error);
            });
    }
};

我预计执行顺序是1,3,2。但是,当我运行代码时,实际顺序是1,2,3。有人可以解释一下为什么会发生这种情况吗?

此外,我注意到当我修改 reloadScenarios 函数以在 getScenario() 之前包含 return 语句时,执行顺序更改为 1, 3, 2 - 这是所需的顺序。我真的需要 return 语句,还是有其他解释来实现所需的序列?

P粉691461301
P粉691461301

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!