如何在 angular 中从 observable 转换为 promise

How to convert from observable to promise in angular

我想从可观察对象中创建一个承诺。我有以下两个功能

public getData(info: Info): Promise<Data> {
   return new Promise((resolve,reject) => {
     this.getObsData(info).subscribe((data:Data) => {
       resolve(data);
       }
   });
}

getObsData(info: Info): Observable<Data> {
    this.anhttpservice(a,b,c).switchMap(data=>
     return Observable.create(observer=> {observer.next(new Data(data))});
    }
}

我一直收到来自 getObsData() 的错误,如下所示。

error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value.

我是 angular 2 和 promises/observables 的新手,所以我肯定做错了什么

您是否尝试过在调用 Observable 后使用 IDE 自动完成? ...

this.getObsData(info).toPromise();
this.anhttpservice(a,b,c).toPromise();

(虽然我建议坚持使用 observables,但这是您的选择)