qustion about node.js fs asynchronous programming [duplicate]

In this asynchronous programming case,
I’m trying to read a file by submitting,
I tried many ways but it still gives me empty array like [ ]

But it’s totally doable if I use synchronous programming

const fs = require("fs");

async function func(data){
    let files = [];
    let test = await fs.promises.readdir(`../${reserve_data}/${data["date"]}`);
    test.forEach(async(fname) => {
        let file = await fs.promises.readFile(`../${reserve_data}/${data["date"]}/${fname}`);
        files.push(file);
    })
    console.log(files);
}

let reserve_data = 'petStore/reserve/reserve_data';
let data = {
    "database":"reserve-history",
    "date":"2023-05-11",
    "time":"03:16",
    "master_name":"test",
    "phone_number":"0000000000",
    "pet_name":"test",
    "prevent":"",
    "id":0
}

func(data);