我在useEffect钩子中调用一个异步函数,如下所示。
const ab = async () => {
console.log("start API");
await callAPI();
console.log("end API");
};
useEffect(() => {
ab();
console.log("calling");
}, []);作为输出,它将首先打印start API,然后打印调用,最后打印end API。但是,作为打印顺序,我需要的是启动API、end API和调用。这也是我使用异步等待的原因。但这不像预期的那样有效。有办法解决这个问题吗?
发布于 2022-08-29 20:22:50
这就是使用await的要点--执行暂停直到callAPI完成。
要实现您想要的顺序,不要使用await,只需让代码异步运行。这样,同步代码(console.log('calling'))将在不等待异步代码(callAPI())完成的情况下运行。
编辑:然而,取决于您的用例,另一个答案可能更有意义。
https://stackoverflow.com/questions/73534259
复制相似问题