Sconsiglio vivamente di gestire la/le promises con setTimeout o simili.

test.json
codice:
{
    "data": {
        "first_name": "max",
        "last_name": "mad"
    }
}
codice:
async function getUsersData(url) {
            const res = await fetch(url, { method: 'GET' });
            return res.json();
        }

        // gestisci i dati della promises con async/await all'interno di una iife (Immediately Invoked Function Expression) 
        (async () => {
            const url = 'test.json';
            let users = await getUsersData(url)
            console.log(users.data.first_name,users.data.last_name)
        })()
        
        // gestisci i dati della promises con .then()
        getUsersData('test.json').then(data => {
            console.log(data.data.first_name, data.data.last_name)
        })