由於訂閱功能和forEach,我使用循環來檢索存儲在Firebase中的數據。當我在訂閱(「=== SUBSCRIBE ===」)中執行我的數據的console.log時,我獲得了很好的結果,但是當我在console.log外(「=== HOME ===」和「===返回===」),我有這樣的結果:顯示異步數據的訂閱
我想它來自一個事實,即它是異步的,如何解決這個問題嗎?
這是我的代碼:
statut: FirebaseListObservable<any[]>;
statuts: Array<any> = [];
// Données à enregistrer dans FireBase
dateOfTheDay: string;
dayOfWeek: number;
constructor(public afDB: AngularFireDatabase, public storage: Storage) {
moment.locale('fr');
this.dateOfTheDay = moment().format('L'); // Date au format : 04/07/2017
this.dayOfWeek = moment().day(); // Numéro du jour de la semaine (Ex : 1 pour lundi)
this.statut = this.afDB.list('/statut');
}
statusToShow() {
this.statut.subscribe(statut => {
statut.forEach(s => {
if (this.dateOfTheDay === s.statut_date_tache) {
if (s.statut_id_tache in this.statuts === false) {
this.statuts[s.statut_id_tache] = s;
}
}
});
console.log('=== SUBSCRIBE ===');
console.log(this.statuts);
});
console.log('=== RETURN ===');
console.log(this.statuts);
return this.statuts;
}
在此先感謝
不確定。一旦確定'this''反對當前課程或不在'subscribe'之外。 – SaiUnique