我试图在Angular 2中使用observables。 这是我的代码:
public getJson<T>(uri: string): Observable<T> {
return Observable.create(observer => {
this.refreshToken()
.subscribe(token => {
observer.next(
super.get<T>(this.getUrl(uri), <HttpOptions>this.getOptions())
);
observer.complete();
});
});
//return super.get<T>(this.getUrl(uri), <HttpOptions>this.getOptions());
}
基本上我需要做的是调用refreshToken()函数,然后调用super.get ......就像提供的代码一样。 所有调用都运行良好,但只有一个问题,它以错误的格式返回数据,如下所示:UseInf {&#34; _isScalar&#34;:false,&#34; source&#34;:{} ... ......} 所以我的问题是,如何执行此操作:首先调用refreshToken()函数,然后调用类似这样的&gt;
返回super.get(this.getUrl(uri),this.getOptions()); / super是HttpClient /
非常感谢您的回复!
EDIT1 我也试过这样的事情:
public getJson<T>(uri: string): Observable<T> {
return this.refreshToken().map(response => {
return super.get<T>(this.getUrl(uri), <HttpOptions>this.getOptions());
})
}
但它给了我错误:键入&#39; Observable<Observable<T>>
&#39;不能分配到&#39; Observable<T>