由于订阅功能和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