aus irgendeinem Grund kann ich nicht den gegebenen Elementwert innerhalb der Schleife Typoskript foreach erhaltenWinkel Typoskript foreach kann nicht Wert erhalten
constructor(db: AngularFireDatabase) {
}
this.fbUserData = this.db.list('users/'+this.userid).valueChanges()
this.fbUserData.forEach(element => {
this.currentRole = element[2].toString(); // receive value
})
jetzt außerhalb der Schleife ich den Wert aus dem AngularFireBase erhalten möchten ich folgendes versucht:
this.userid = this.firebaseAuth.auth.currentUser.uid.toString();
this.fbUserData = this.db.list('users/'+this.userid).valueChanges()
this.fbUserData.forEach(element => {
this.rolelist.push(element[2].toString());
})
aber this.rolelist (Array) bleibt außerhalb der Schleife leer. innerhalb der Schleife wird der Wert wie array [ ‚test‘]
Ich möchte sie empfangen außerhalb der Schleife so console.log:
checkAuth(data){
this.userid = this.firebaseAuth.auth.currentUser.uid.toString();
this.fbUserData = this.db.list('users/'+this.userid).valueChanges()
this.fbUserData.forEach(element => {
this.rolelist.push(element[2].toString());
})
console.log(this.rolelist);
so dass this.rolelist hat den Elementwert aus der foreach loop
Was denkst du 'this.fbUserData' ist? Was sagt deine IDE? Wenn du herausgefunden hast, was es ist, welche Art von Dingen kannst du damit machen? Was soll "forEach" machen? Glaubst du, dass es "Array # forEach" oder "FirebaseListObservable # forEach" ist, die völlig verschieden sind? Falls dies eine AngularFire-Frage ist, markieren Sie sie bitte als solche und erwähnen Sie die Version, die Sie verwenden. Auch wenn es nicht zu viel Mühe macht, tun Sie sich selbst und allen anderen einen großen Gefallen und stecken Sie Ihren Code richtig ein. –
Sie können es nicht außerhalb des Abonnements verwenden, dies ist asynchron, überprüfen Sie: https://stackoverflow.com/questions/43055706/how-do-i-return-the-response-from-an-observable-http-async-call -in-eckig2 – Alex