我在Ionic中开发应用程序时遇到了一个问题。我正在使用数据库提供程序在数据库上执行查询,这很好,但它可能被称为异步,因为我没有定义。
在一些检查和其他逻辑之后,我从数据库返回值:
this.databaseProvider.getValueFor(saved.id)
.then(data => {
return data;
});
有没有办法将数据返回给Observable并订阅它?我是Angular2的新手,并不了解所有的概念。
发布于 2017-11-15 04:15:14
您可以使用**`Observable.fromPromise**`方法将promise转换为Observable,然后订阅Observable以从中检索数据。
SomeMethod(){
return Observable.fromPromise(this.databaseProvider.getValueFor(saved.id))
}
//Usage
this.SomeMethod().subscribe(data => {
console.log("data", data)
})
发布于 2018-09-23 18:47:06
可观察对象是懒惰的,所以您需要订阅它才能从其中获取数据。
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)) ); }
https://stackoverflow.com/questions/47294141
复制相似问题