Assegnare dati fetch request ad una variabile globale

iTonto

Utente Attivo
8 Feb 2018
107
2
18
www.fiverr.com
In pratica quello che vorrei fare è prendere i dati ottenuti tramite una fetch request, looppare sui dati con un forEach e poi memorizzare il risultato in una variabile globale.
JavaScript:
const url = '...API_URL...';
let users = [];

try {
    fetch(url, { method: 'GET' })
        .then(res => {
            if (res.status !== 200) {
                throw new Error(res.statusText);
                return;
            }
            return res.json();
        })
        .then(data => {
            data.data.forEach(user => {
                let userData = {
                    firstName: user.first_name,
                    lastName: user.last_name
                };
                users.push(userData);
            })
        })
} catch (error) {
    throw new Error(error);
}

JavaScript:
const url = '...API_URL...';
let users = [];

function getSingleUserData(userdata) {
    userdata.data.forEach(user => {
        let userData = {
            firstName: user.first_name,
            firstName: user.first_name
        };
        users.push(userData);
    });
}
  
async function getUsersData() {
    const res = await fetch(url, { method: 'GET' });
    const data = await res.json();
    getSingleUserData(data);
}

getUsersData();

So che l'API fetch è asincrona e ha bisogno di un po' di tempo per fare il suo lavoro, quindi se faccio un console.log() della variabile users quello che ottengo è un array vuoto perché la fetch request è ancora in lavorazione. La mia domanda è: come posso aspettare che la fetch request sia terminata e poi memorizzare i dati nella variabile globale?
 

Discussioni simili