【发布时间】:2017-12-31 12:21:06
【问题描述】:
借助 subscribe 函数和 forEach,我使用循环检索存储在 Firebase 中的数据。当我在订阅(“=== SUBSCRIBE ===”)中对我的数据执行console.log时,我得到了很好的结果,但是当我在外面执行console.log(“=== HOME ===”和"=== RETURN ==="),我有这个结果:
我想这是因为它是异步的,请问如何解决这个问题?
这是我的代码:
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之外。
标签: angular typescript firebase asynchronous ionic-framework