Reactjs 如何强制函数仅在另一个异步函数完成后执行

Reactjs 如何强制函数仅在另一个异步函数完成后执行,reactjs,react-native,async-await,Reactjs,React Native,Async Await,我想知道会议的长度是否大于1,以便向用户显示他是否可以预约另一次会议(允许一周最多一次会议),因此我需要在useffect中使用它 state.userMeetings.length > 1 ? console.log("bigger") : console.log("less then 1"); useEffect(() => { getUserMeetings(user.token, user.userI

我想知道会议的长度是否大于1,以便向用户显示他是否可以预约另一次会议(允许一周最多一次会议),因此我需要在
useffect
中使用它

     state.userMeetings.length > 1 ? console.log("bigger") : console.log("less then 1");

    useEffect(() => {
        getUserMeetings(user.token, user.userId);////async function
        check();
    }, []);
现在,背后的一切都无关紧要了: 我调用getUserMeeting并获取会议数组: 问题:当我第一次渲染/进入组件时,我在check函数中得到了“小于1”(注意,在userMeetings数组中有多个meet)

在第一次渲染后,如果我返回并继续,它将按预期工作,并返回我“更大”

问题:如果我执行getUserMeeting,为什么在第一次会议中我得到的少于一个? 也许不是等着完成“getUserMeeting”? 我怎样才能强迫他先完成异步函数,然后执行check()函数呢?

这样试试

useEffect(() => {
    async function fetchMyAPI() {
      let response = await getUserMeetings(user.token, user.userId); //async function
      check();
    }

    fetchMyAPI()
  }, [])

我得到错误:警告:一个effect函数不能返回函数之外的任何东西,函数用于清理。看起来您编写了useffect(async()=>…)或返回了一个承诺。相反,在效果中编写异步函数并立即调用它:useffect(()=>{async function fetchData(){//const response=wait MyAPI.getData(someId);//…}fetchData();},[someId]);//或者[]如果效果不需要道具或状态