为什么我的变量在 await promise 之后没有被设置

Why my variable is not been set after a await promisse

const loadData = async () => {
        try {
            const data = await GetAllForms();
            setAllForms([...data]);
        } catch (err) {
            console.log(err);
        }
    }

我的变量数据正在接收来自 GetAllForms 的数据(这是一个 promise 函数),但是当我尝试分配给另一个变量时是空的,例如在这个控制台日志中显示一个空数组。但是如果我只是一个 console.log(data) 数据显示正确,问题只出在 dataAux 我不知道这里发生了什么。 谢谢!

这里是 GetAllForms

export async function GetAllForms() {
    const formRef = await dbForms.collection("forms");
    const snapshot = await formRef.get();
    const dataFormattedArray = [] as IFormsFormatted[];

    snapshot.forEach(async doc => {
        const docData = doc.data() as IForms
        const aux = [] as FormsData[];

        for (const id of docData.formsFieldId) {
            const test = await GetOneFormsField(id);
            aux.push(test);
        }

        const dataFormatted = { ...docData, formsFieldId: [...aux] }

        dataFormattedArray.push(dataFormatted);
    })
    
    return dataFormattedArray;
}

如果我在 setAllForms 之后检查 de allForms 变量是空的。

我解决了问题...确实是 forEach,我只重写了数据获取,用 for ... of 替换了 forEach:

await Promise.all(snapshot.docs.map(async doc => {  //Fetching in Paralel the data
        const docData = doc.data() as IForms
        const aux = [] as FormsData[];
        
        for (const id of docData.formsFieldId) {
            const test = await GetOneFormsField(id);
            aux.push(test);
        }

        const dataFormatted = { ...docData, formsFieldId: [...aux] }

        dataFormattedArray.push(dataFormatted);

    }))

感谢所有对此回复的人!干杯!