0

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;
}
Kavoos
  • 377
  • 4
  • 19

0 Answers0