【发布时间】:2019-11-10 19:53:09
【问题描述】:
我正在尝试在地图中调用 API 方法,但从未进行过第二次 API 调用。没有控制台错误。
//This method is not being called - Not hitting the API method
this.getUserPermissions(localStorage.getItem('user_ref'));
只是想知道我是否不能在地图内调用地图?
下面是我的代码。
public isAuthenticated() {
if (!this.loggedIn)
this.redirectToLogin();
return this.httpClient.get<boolean>(`${this.settings.getApiSettings('uri')}/api/auth/IsTokenValid`, {
params: { token: this.getToken }
}).map( /// <<<=== use `map` here
(response) => {
if (response !== null) {
var receivedToken = response["securityStamp"];
var availableToken = localStorage.getItem('access_token');
//Check if received a refreshed token. (tokens are refreshed every 15 minutes)
if (receivedToken && receivedToken !== availableToken) {
localStorage.removeItem('access_token');
localStorage.setItem('access_token', response["securityStamp"]);
}
this.user_permissions = this.getUserPermissions(localStorage.getItem('user_ref'));
}
let data = response;
if (data == null)
return false;
else
return true;
}
);
}
getUserPermissions(user_ref) {
if (!this.loggedIn)
this.redirectToLogin();
const httpParams: HttpParamsOptions = { userRef: "44C4D2F7-76A0-4714-B8CA-3123F607AC5A" } as HttpParamsOptions;
const httpOptions = {
params: new HttpParams(httpParams),
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + this.getToken
})
};
return this.httpClient.get<Array<any>>(`${this.settings.getApiSettings('uri')}/api/auth/GetUserPermissions`, httpOptions).map( /// <<<=== use `map` here
(response) => {
if (response["status"] == 401) {
this.redirectToLogin();
}
else if (response["status"] < 200 || response["status"] >= 300) {
throw new Error('This request has failed ' + response["status"]);
}
this.user_permissions = response;
return response;
}
);
}
【问题讨论】:
-
你真的在这里使用 Angular7 吗?因为如果你是,你不应该直接使用像
.map这样的 RxJS 运算符,就像你已经完成的那样,将它链接到Observable。只是确保我可以提出解决方案。
标签: angular asp.net-web-api angular7