如何等待 return 值并在 Angular2 中订阅它?
How to wait for return value and subscribe to it in Angular2?
我在 Ionic 中开发应用程序时遇到了问题。我正在使用数据库提供程序对数据库执行查询,这很好,但它可能被称为异步,因为我未定义。
经过一些检查和其他逻辑后,我return正在从数据库中获取值:
this.databaseProvider.getValueFor(saved.id)
.then(data => {
return data;
});
有什么方法可以return数据到Observable并订阅吗?我是 Angular2 的新手,不了解所有概念。
您可以使用 [**Observable.fromPromise**][1]
方法将 promise 转换为 Observable,然后订阅 Observable 以从中检索数据。
SomeMethod(){
return Observable.fromPromise(this.databaseProvider.getValueFor(saved.id))
}
//Usage
this.SomeMethod().subscribe(data => {
console.log("data", data)
})
Observable 是惰性的,因此您需要订阅它才能从中获取数据。
this.databaseProvider.getValueFor(saved.id)
.subscribe(data => {
console.log(data); //response
});
getValueFor(id): Observable<any> {
const url = 'http://yourAPI/'+id;
return this.http.get<any>(url)
.pipe(
map((res: any) => res.json()),
catchError(e => this.handleError(e))
);
}
我在 Ionic 中开发应用程序时遇到了问题。我正在使用数据库提供程序对数据库执行查询,这很好,但它可能被称为异步,因为我未定义。
经过一些检查和其他逻辑后,我return正在从数据库中获取值:
this.databaseProvider.getValueFor(saved.id)
.then(data => {
return data;
});
有什么方法可以return数据到Observable并订阅吗?我是 Angular2 的新手,不了解所有概念。
您可以使用 [**Observable.fromPromise**][1]
方法将 promise 转换为 Observable,然后订阅 Observable 以从中检索数据。
SomeMethod(){
return Observable.fromPromise(this.databaseProvider.getValueFor(saved.id))
}
//Usage
this.SomeMethod().subscribe(data => {
console.log("data", data)
})
Observable 是惰性的,因此您需要订阅它才能从中获取数据。
this.databaseProvider.getValueFor(saved.id)
.subscribe(data => {
console.log(data); //response
});
getValueFor(id): Observable<any> {
const url = 'http://yourAPI/'+id;
return this.http.get<any>(url)
.pipe(
map((res: any) => res.json()),
catchError(e => this.handleError(e))
);
}