У меня есть метод GetUser внутри провайдера аутентификации (работающий в ионического 2):Угловой метод возвращает, как не определено, а не объект JSON
getUser(uid: string): any {
var toReturn;
firebase.database().ref('/userProfile').orderByKey().equalTo(uid).once("value", function(snapshot){
toReturn = snapshot.val();
console.log("getUser = " + JSON.stringify(toReturn));
});
return toReturn;
}
Он извлекает объект пользователя из firebase. Он корректно выводится с помощью console.log, предоставляя его и сохраняется в переменной toReturn.
Ниже приведен класс ItemDetailPage, однако, когда я регистрирую значение того же метода, он возвращает undefined.
import { Component } from '@angular/core';
import { NavParams} from 'ionic-angular';
import { Auth } from '../../providers/auth/auth';
@Component({
templateUrl: 'build/pages/item-detail/item-detail.html',
providers: [Auth]
})
export class ItemDetailPage {
private title;
private description;
private author;
constructor(private navParams: NavParams, private _auth: Auth) {
this.title = this.navParams.get('item').title;
this.description = this.navParams.get('item').description;
this.author = _auth.getUser(this.navParams.get('item').author);
console.log("item-detail.ts = " + JSON.stringify(this.author));
//_auth.getUser('123');
}
}
Я новичок в Угловое и пытается узнать, как я иду вперед, так что это, вероятно, что-то довольно просто я пропускаю. Однако почему объект JSON не возвращается и не возвращается? Мне нужно, чтобы они использовали значения, запрашиваемые из базы данных.
Благодаря
Вы должны использовать лямбда-синтаксис (моментальный снимок) => {} вместо функции (моментальный снимок) {} .see, если он работает. – Ajay