2017-05-30 62 views
0

訂閱功能創建的數組我有這樣的代碼,從MongoDB中得到了一些數據,並在我的組件數組保存它。遍歷從可觀察

this.laugService.getAllLaug().subscribe(laug => { 
    this.laugs = laug; //save posts in array 
}); 

this.laugs.array.forEach(element => { 
    this.modelLaugs.push(new Laug(element.navn, element.beskrivelse)) 
}); 

之後,我想這個數據保存到不同的陣列,在那裏我創造我的模式「LAUG」的新實例。對於這個我使用foreach循環,但我運行這段代碼時,得到一個錯誤:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 
'forEach' of undefined 
TypeError: Cannot read property 'forEach' of undefined 

我敢肯定,我從數據庫中接收數據,但我不確定爲什麼我的陣列在這個不確定的點。

+2

的[?我如何返回從一個異步調用的響應(可能的複製https://stackoverflow.com/questions/14220321/how-do-i -return最響應從 - 一個異步呼叫) – dfsq

回答

1

您的訂閱是異步。當您試圖遍歷laugs財產不得設置。只要把在foreach代碼訂閱回調中:

this.laugService.getAllLaug().subscribe(laug => { 
    this.laugs = laug; //save posts in array 

    if (this.laugs && this.laugs.array) { 
     this.laugs.array.forEach(element => { 
      this.modelLaugs.push(new Laug(element.navn, element.beskrivelse)) 
     }); 
    } 
});