Ciao a tutti,
Sono entrato da poco nel mondo Angular e mi sto imbattendo in un problema che non riesco proprio a risolvere.
Ho creato un service chiamato
UtentiService dove all'interno invoco un servizio rest che mi restituisce la lista degli utenti registrati.
getUtenti() : Utente[]{
let data = this.http.get(this.API).subscribe((data) => {
let output = data['utenti'];
for (var i = 0; i < output.length; i++){
let utente = <Utente> output[i];
this.listaUtenti.push(utente);
}
});
Questo metodo lo chiamo da un component.ts
getUtenti(){
this.listaUtenti = this.serviceUtente.getUtenti();
console.log("Risultato utenti" +JSON.stringify(this.listaUtenti));
Il getUtenti non aspetta che finisca il "this.serviceUtente.getUtenti()" e di conseguenza la listaUtenti sarà sempre vuota.
Infatti se metto un timeout al mio getUtenti funziona.
setTimeout(() => {
console.log("Risultato utenti" +JSON.stringify(this.listaUtenti));
}, 300);
Mi chiedevo, ci sta un modo per risolvere questo problema oppure devo giocare con gli eventEmitter? Grazie mille a tutti
Ciao
GreyDiamond