如何使用 Angularfire2 在 Ionic 2 中执行订阅方法
How to identify method subscribe has executed in Ionic 2 using Angularfire2
我正在尝试使用 Angular2 在我的 Ionic2 项目中从 Firebase 获取数据。以下是代码。
getNextItem(): string[] {
this.af.database.object(`/user/${uid}/data`)
.subscribe(value =>{
this.item = value;
});
return this.item;
}
在这种情况下,我的 item
始终为空,因为 subscribe
方法在我的方法完成后执行。我也无法从 subscribe
方法中 return item
。
那么我将如何获取数据以及如何识别 subscribe
方法何时执行?
您是否不必创建一个新的 Promise
?
return new Promise(resolve => {
this.af.database.object(`/user/${uid}/data`).subscribe(resolve => {
this.item = resolve;
});
});
还没有尝试过这段代码,所以不确定它是否有效。
我一般都是这样写的
getDataByUser(fbPath: string, userId: string) {
return new Promise(resolve => {
this.af.database.list(`${fbPath}/${userId}/data`)
.subscribe(res => resolve(res));
})
}
我正在尝试使用 Angular2 在我的 Ionic2 项目中从 Firebase 获取数据。以下是代码。
getNextItem(): string[] {
this.af.database.object(`/user/${uid}/data`)
.subscribe(value =>{
this.item = value;
});
return this.item;
}
在这种情况下,我的 item
始终为空,因为 subscribe
方法在我的方法完成后执行。我也无法从 subscribe
方法中 return item
。
那么我将如何获取数据以及如何识别 subscribe
方法何时执行?
您是否不必创建一个新的 Promise
?
return new Promise(resolve => {
this.af.database.object(`/user/${uid}/data`).subscribe(resolve => {
this.item = resolve;
});
});
还没有尝试过这段代码,所以不确定它是否有效。
我一般都是这样写的
getDataByUser(fbPath: string, userId: string) {
return new Promise(resolve => {
this.af.database.list(`${fbPath}/${userId}/data`)
.subscribe(res => resolve(res));
})
}