首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Angular2中等待返回值并订阅?

如何在Angular2中等待返回值并订阅?
EN

Stack Overflow用户
提问于 2017-11-15 03:53:19
回答 2查看 2.6K关注 0票数 0

我在Ionic中开发应用程序时遇到了一个问题。我正在使用数据库提供程序在数据库上执行查询,这很好,但它可能被称为异步,因为我没有定义。

在一些检查和其他逻辑之后,我从数据库返回值:

代码语言:javascript
复制
this.databaseProvider.getValueFor(saved.id)
    .then(data => {
           return data;
    });

有没有办法将数据返回给Observable并订阅它?我是Angular2的新手,并不了解所有的概念。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-15 04:15:14

您可以使用**`Observable.fromPromise**`方法将promise转换为Observable,然后订阅Observable以从中检索数据。

代码语言:javascript
复制
SomeMethod(){
   return Observable.fromPromise(this.databaseProvider.getValueFor(saved.id))
}

//Usage
this.SomeMethod().subscribe(data => {
   console.log("data", data)
})
票数 1
EN

Stack Overflow用户

发布于 2018-09-23 18:47:06

可观察对象是懒惰的,所以您需要订阅它才能从其中获取数据。

代码语言:javascript
复制
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)) ); }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47294141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档