如何从角度转换为observable到promise

时间:2018-02-12 15:40:32

标签: angular typescript observable angular-promise

我想从一个可观察的角度创建一个承诺。我有以下两个功能

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.

我是棱角分明2和承诺/观察者的新手所以我必须做一些明显错误的事情

1 个答案:

答案 0 :(得分:3)

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

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

(Altough我建议坚持观察,但这是你的选择)