I have some code:
getPatients() {
const db = firebase.database();
let patients = [];
let refDatabase = db.ref('patient');
let valuesDatabase = [];
let valuesNameArray = [];
let valuesBirthArray = [];
let valuesAgeArray = [];
let valuesGenderArray = [];
let valuesCountryArray = [];
let valuesStateArray = [];
let valuesCityArray = [];
refDatabase.on('value', elem => {
valuesDatabase = elem.val();
valuesNameArray = Object.values(valuesDatabase.name);
valuesAgeArray = Object.values(valuesDatabase.age);
valuesBirthArray = Object.values(valuesDatabase.birth);
valuesGenderArray = Object.values(valuesDatabase.gender);
valuesCountryArray = Object.values(valuesDatabase.country);
valuesStateArray = Object.values(valuesDatabase.state);
valuesCityArray = Object.values(valuesDatabase.city);
for (let i = 0; i < valuesNameArray.length; i++) {
patients = [...patients, { name: valuesNameArray[i], age: valuesAgeArray[i], birth: valuesBirthArray[i], gender: valuesGenderArray, country: valuesCountryArray[i], state: valuesStateArray[i], city: valuesCityArray[i] }];
}
return patients;
});
};
I wrote this method in my class and try to use it in other files, smth like this:
const newPatient = new PatientService();
console.log(newPatient.getPatients());
In this console.log
i got undefined
. I understand why it works this way: because I wrote 'return' in refDatabase
function and this return
apply for this. But if I'll write 'return' after 'refDatabase' I will get undefined
again because console.log
works faster than refDatabase
. How i can fix it?
P.s. I have read documents about promise, async\await and many other pages, but cant understand how implement solution from them to my project.