【发布时间】:2017-06-24 20:19:11
【问题描述】:
我在某些服务中有方法:
public approveTokenExpiration(): Observable<any> {
let header = new Headers();
header.append('Authorization', this.getTokenHeaderValue());
let options = new RequestOptions({headers: header});
return this.http.get(Constants.oauthLoginEndPointUrl, options)
.map(res => {
return res;
})
.catch(err => {
return refreshToken()
.subscribe(res => {
return res;
});
});
}
刷新令牌方法:
public refreshToken(): Observable<any> {
let refreshToken = localStorage.getItem(Constants.REFRESH_TOKEN);
let refreshEndPointUrl = Constants.oauthLoginEndPointUrl + "?grant_type=refresh_token&client_id=" +
Constants.clientId + "&client_secret=" + Constants.clientSecret + "&refresh_token=" + refreshToken;
this.http
.post(refreshEndPointUrl, {})
.map(res => {
this.setAuthLocalStorageItems(res);
this.removeAuthLocalStorageItems();
return res;
});
}
和订阅:
request(url: string|Request, options?: RequestOptionsArgs): Observable<Response> {
this.customOptions = options;
return this.authService.approveTokenExpiration()
.subscribe(
res => {
this.addAuthHeader();
return super.request(url, this.customOptions);
},
err => {
this.authService.refreshToken();
this.addAuthHeader();
return super.request(url, this.customOptions);
});
}
我收到以下错误:
[at-loader] 中的错误 ./src/app/auth/intercept/auth.interceptor.ts:18:5 TS2322:“订阅”类型不可分配给“可观察”类型。 “订阅”类型中缺少属性“_isScalar”。
请检查我的 RxJs 处理是否一切正常;
【问题讨论】:
标签: http rxjs angular2-services