I have this function
populateGenerals() {
var generals = [];
this.productsService.getGenerals()
.subscribe(data => {
data.forEach(element => {
generals.push({ id: element._id, text: element._id });
});
console.log(generals);
});
console.log(generals);
return generals;
}
inner console gives me:
[{"id":"1","text":"red"},{"id":"2","text":"blue"}]
while outer console gives me:
[]
How can I return the same array as inner console when returning generals?
UPDATE / SOLUTION
populateGenerals() {
this.loading = true;
var generals = [];
this.productsService.getGenerals()
.subscribe(data => {
this.loading = false;
data.forEach(element => {
generals.push({ id: element._id, text: element._id });
});
this.populateCallback(generals);
});
return this.generals;
}
populateCallback(array) {
this.generals = array;
}