如何在useEffect中使代码同步

Haw*_*awk 5 javascript reactjs react-hooks

我知道不建议创建 add async to useEffect 但是在继续之前如何确保我的功能完全完成

这是我的代码

useEffect(
   () => {
         const RetrieverDataProcess = async () => {
             const GetMainListResults = await GetMainList(FORMSTATUS.ID);
             setMAINOBJECT(GetMainListResults); //useState
             console.log(2)
         }

         console.log(1);
         RetrieverDataProcess();
         console.log(99);

    }, [])
Run Code Online (Sandbox Code Playgroud)

如果我在我的控制台中运行它的显示

1

99

2

我希望它的

1

2

99

小智 4

您这样做是因为您希望MAINOBJECT在准备执行时设置状态属性吗console.log(99)

如果是这样,您可以做的一件事是使用一个useEffect仅在状态属性MAINOBJECT更新时执行的附加钩子:

useEffect(() => {
  if (MAINOBJECT) {
    console.log(99);
  }
}, [MAINOBJECT]);
Run Code Online (Sandbox Code Playgroud)