【发布时间】:2019-03-26 09:10:06
【问题描述】:
我有 CustomerPage、CustomerService 和 AuthService。
需要将一个 access_token 从 AuthService 传递给 CustomerService 以获取 http-get 请求。 AuthService 和 CustomerService 不起作用。
请帮帮我!
谢谢。
客户页面:
this.customerService.getCustomersDashboard()
.subscribe(....)
客户服务:
getCustomersDashboard(): Observable<any> {
var url = "......";
let authHeader = this.authservice.getAuthHeaders(); // HttpHeader with access_token
return this.http.get(url, { headers: authHeader }).pipe(
map((resp: Response) => {
let response = this.extractData(resp);
return response;
}));
身份验证服务: 不工作!!!
getAuthHeaders(){
const authtoken = Observable.fromPromise(this.storage.get(`access_token`));
return new HttpHeaders({ 'authorization': authtoken }); // => **not working**
}
【问题讨论】:
-
您的存储 API 承诺是否基于?如果它是异步的——你不能只将它传递给标题。使用
switchMap从存储中读取值并切换到http-get。如果它是同步的——那么你不需要fromPromise。 -
离子存储是基于承诺的!你能提供switchMap的伪代码吗?谢谢
标签: angular ionic-framework rxjs