如何等待返回值并在Angular2中订阅它?
我在爱奥尼亚开发应用程序时遇到了一个问题。我正在使用数据库提供程序对数据库执行查询,这很好,但可能被称为异步查询,因为我没有定义 经过一些检查和其他逻辑后,我将从数据库返回值:如何等待返回值并在Angular2中订阅它?,angular,ionic2,observable,subscribe,Angular,Ionic2,Observable,Subscribe,我在爱奥尼亚开发应用程序时遇到了一个问题。我正在使用数据库提供程序对数据库执行查询,这很好,但可能被称为异步查询,因为我没有定义 经过一些检查和其他逻辑后,我将从数据库返回值: this.databaseProvider.getValueFor(saved.id) .then(data => { return data; }); 有没有办法将数据返回到Observable并订阅它?我对Angular2很陌生,不知道所有的概念。你可以使用[**可观测。
this.databaseProvider.getValueFor(saved.id)
.then(data => {
return data;
});
有没有办法将数据返回到Observable并订阅它?我对Angular2很陌生,不知道所有的概念。你可以使用[**
可观测。fromPromise**][1]
方法将promise转换为Observable,然后订阅Observable从中检索数据
SomeMethod(){
return Observable.fromPromise(this.databaseProvider.getValueFor(saved.id))
}
//Usage
this.SomeMethod().subscribe(data => {
console.log("data", data)
})
this.databaseProvider.getValueFor(saved.id)
.subscribe(data => {
console.log(data); //response
});
可观察对象是惰性的,因此您需要订阅它以从中获取数据
SomeMethod(){
return Observable.fromPromise(this.databaseProvider.getValueFor(saved.id))
}
//Usage
this.SomeMethod().subscribe(data => {
console.log("data", data)
})
this.databaseProvider.getValueFor(saved.id)
.subscribe(data => {
console.log(data); //response
});
getValueFor(id):可观察{
常量url=http://yourAPI/“+id;
返回此.http.get(url)
.管道(
map((res:any)=>res.json()),
catchError(e=>this.handleError(e))
);
}
“Observable”不可分配给“PromiseLikehello”类型的参数,我正在使用angular auth客户端oidc this.oidcSecurityService.getUserData().subscribe();此方法由oidc库提供,用于如何等待此类订阅完成。我无法将其转换为promise,因为它位于Library中。如果我在服务层内调用HTTP请求,需要等待请求的响应,并在组件中对其进行处理,该怎么办?是的,您也可以这样做。您只需要返回HTTP调用的响应。看看下面的代码片段getData(url):Observable{返回this.http.get(url).pipe(map((res:any)=>res.json()),catchError(e=>this.handleError(e));}
所以,我将像getData(url.subscribe()一样编写订阅,对吗?