私はFirebaseからAngularFire2でデータを取得しようとしています。 特定のデータを確認したいのですが、このデータをFirebaseから取得した後、Firebaseの操作後ではなく、特定の有効範囲内でのみチェックすることができます。それはなぜ起こるのですか?以下はAngularFire2はデータを取得した後にデータにアクセスします
私のコードです:
this.af.database.list('/users/1qfcMAQnglX9jsW5GdLpPko1HqE2', { preserveSnapshot: true})
.subscribe(snapshots=>{
snapshots.forEach(snapshot => {
if(snapshot.key=="reg_boolean"){
console.log(snapshot.val());
this.bo=snapshot.val();
}
this.currentUser.push({key:snapshot.key,value:snapshot.val()});
console.log(this.currentUser);
//console.log(snapshot.key, snapshot.val());
if(this.bo==true){console.log("happy"); }; //i can access only in this scope
});
})
if(this.bo==true){console.log("happy"); }; //why i can access this value??it's undefined, this happen before the subscribe with angularfire2
ビクターの答えは説明するが、私はまた、これらの参照の質問にあなたを呼びます:[?私は非同期呼び出しからの応答を返すにはどうすればよい](http://stackoverflow.com/q/14220321 /)、[$ .getJSON関数中に設定された変数は関数内でしかアクセスできません](http://stackoverflow.com/q/1739800)と[jQuery:ajax呼び出しの成功後のデータを返す](http://stackoverflow.com/1/5316697)。 –