Kann jemand erklären, wie Versprechen in Angular2 und Firebase korrekt implementieren.Versprechen in angular2 mit Firebase
Ich habe einige Artikel wie diesen lesen https://www.firebase.com/blog/2016-01-21-keeping-our-promises.html
in meiner app.component.ts Datei, die ich dieses
export class AppComponent{
players: Player[];
constructor(private _playerService: PlayerService){}
getPlayers(){
this._playerService.getPlayers().then(res => this.players = res);
}
ngOnInit(){
this.getPlayers();
}
}
haben in der player.service.ts Datei Ich habe diese
getPlayers() {
this.playersRef.once('value', function (snap){
return snap.val();
});
}
ich immer bekommen Typeerror: this._playerService.getPlayers (...) ist
undefinedIch habe auch versucht, dies als der Artikel oben schlägt
getPlayers() {
var data;
this.playersRef.once('value').then(function (snap){
data = snap.val();
});
return data;
}
Aber dann bekomme ich diese: Fehler: Query.once fehlgeschlagen: Wurde mit 1 Argument aufgerufen. Erwartet, dass mindestens 2 in [null]
Ich bin nicht sicher, wie der Artikel überhaupt mit .Sobald (‚value‘) zu arbeiten. Dann()
@ Ska1111 Versuchen aktualisiert solution..should Arbeit haben .. –
'.Sobald()' asynchron ist, deshalb habe ich '.then' darüber, so dass die Daten erhalten Zurückgegeben einmal Versprechen erfüllt .. schaue dir die udpate Antwort an..Ich habe die Pfeilfunktion '=>' in '.then 'vermisst .. –
Sorry, ich habe nicht bemerkt, dass du deine Antwort schon aktualisiert hast. Das ist, was ich bekomme, wenn ich es nur mit '.once ('Wert') mache. Dann (...)' Fehler: 'Query.once ist fehlgeschlagen: Wurde mit 1 Argument aufgerufen. Erwartet mindestens 2. 'so muss ich es mit einem Rückruf tun, aber ich bin mir nicht sicher, wie –