Я пытаюсь выяснить, почему я получаю объекты // 1 и // 2, но получение не определено на // 3 ...Callbacks/Promises в Firebase
Я бездельничал Angular2 с машинопись и Firebase назад конец.
Что я делаю неправильно здесь, мне кажется, как новобранец ошибку ...
getPlayers() {
var snap;
this.playersRef.once('value', function (snapshot) {
snap = snapshot.val();
//1
console.info("snap.val()" + snapshot.val());
//2
console.info("var snap" + snap);
}
);
//3
console.info("var snap loc 2" + snap);
//return new Promise<Player[]>(resolve => resolve(snap));
}
///////// EDIT //////////// /////////////////////////////////
Может кто-нибудь объяснить, как это относится к БД Firebase nosql, в частности (Внутри приложения Angualr2).
в моем app.component.ts файл у меня есть этот
constructor(private _playerService: PlayerService){}
getPlayers(){
this._playerService.getPlayers().then(res => this.players = res);
}
ngOnInit(){
this.getPlayers();
}
Внутри player.service.ts файл У меня есть этот
getPlayers() {
this.playersRef.once('value', function (snap){
return snap.val();
});
}
Я всегда получаю TypeError: this._playerService.getPlayers (...) не определено
Я читал некоторые atricle, такие как это https://www.firebase.com/blog/2016-01-21-keeping-our-promises.html
, но я до сих пор не могу понять, как заставить все работать вместе.
Кроме того, когда я пытаюсь изменить мои getPlayer()
обещаниями (в INSEAD обратных вызовов), как в статье я получаю исключение о том, что .once()
потребности по крайней мере, два параметра, так что я не знаю, как эта статья работает на всех с .once('value').then()
«один раз» асинхронный? –
yes, async with Firebase –