Angular 如何从承诺中返回可观察到的

Angular 如何从承诺中返回可观察到的,angular,ionic2,Angular,Ionic2,我需要使用@Ionic/storage从存储器中获取承载令牌。 离子存储带来了希望。 然后我需要将其与角度http请求一起使用,该请求将返回Observable 我怎样才能达到同样的效果?或者,我是否可以使用@Ionic/Storage观察纯返回类型 get(url: string, options?: RequestOptionsArgs): Observable<any> { let promise = this.requestOptions(options).t

我需要使用
@Ionic/storage
从存储器中获取承载令牌。 离子存储带来了希望。 然后我需要将其与
角度http
请求一起使用,该请求将返回Observable

我怎样才能达到同样的效果?或者,我是否可以使用
@Ionic/Storage
观察纯返回类型

    get(url: string, options?: RequestOptionsArgs): Observable<any> {
    let promise = this.requestOptions(options).then((options) => {
      return super.get(this.getFullUrl(url), options)
        .catch(this.onCatch)
        .do((res: Response) => {
          this.onSubscribeSuccess(res);
        }, (error: any) => {
          this.onSubscribeError(error);
        })
        .finally(() => {
          this.onFinally();
        });
    });
    return Observable.fromPromise(promise);
  }
get(url:string,options?:RequestOptionsArgs):可观察{
让promise=this.requestOptions(选项)。然后((选项)=>{
返回super.get(this.getFullUrl(url),选项)
.catch(this.onCatch)
.do((回复)=>{
本次认购成功(res);
},(错误:任意)=>{
此.onSubscribeError(错误);
})
.最后(()=>{
这个;
});
});
可观察的回报。来自承诺(承诺);
}
请求选项功能:

 private requestOptions(options?: RequestOptionsArgs): Promise<RequestOptionsArgs> {
    if (options == null) {
      options = new RequestOptions();
    }
    if (options.headers == null) {
      return this.currentUser.currentToken().then((token) => {
        options.headers = new Headers({ 'Content-Type': 'application/json' });
        options.headers.append('Authorization', 'Bearer ' + token);
        return this.currentUser.getAppVersion().then((version: string) => {
          options.headers.append("appVersion", version);
          return options;
        })
      })
    } else {
      return null;
    }
  }
private requestOptions(选项?:RequestOptionsArgs):承诺{
如果(选项==null){
选项=新请求选项();
}
if(options.headers==null){
返回此.currentUser.currentToken()。然后((令牌)=>{
options.headers=新的头({'Content-Type':'application/json'});
options.headers.append('Authorization'、'Bearer'+令牌);
返回此.currentUser.getAppVersion()。然后((版本:字符串)=>{
options.headers.append(“appVersion”,version);
返回选项;
})
})
}否则{
返回null;
}
}

我不明白为什么问题的答案是这一部分。还有两条建议。使用async/await使代码看起来更干净,缓存令牌,不要每次尝试使用它时都通过promise请求它。请提供一些示例。我将在本机应用程序中使用此选项。检查此行
return super.get(this.getFullUrl(url),options)
我认为参数不正确