代码之家  ›  专栏  ›  技术社区  ›  user2175783

如何在角度上实现从可观测到承诺的转换

  •  2
  • user2175783  · 技术社区  · 8 年前

    我想从可观察的事物中创造一个承诺。我有以下两个功能

    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和Promissions/observables还不熟悉,所以我肯定是做错了什么

    1 回复  |  直到 8 年前
        1
  •  3
  •   user4676340 user4676340    8 年前

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

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

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