我有一个返回权限的HTTP GET请求。我在isProjectLead()的auth.service.ts中使用此请求。我需要等待http请求返回该值以允许访问页面。
我该怎么做?我尝试使用Promises,但是对此了解不多。
get isProjectLead() {
var flag = false;
//var thisPromiseCount = ++this.promiseCount;
var user = JSON.parse(localStorage.getItem("user"));
if (!this.selectedProject) {
this.selectedProject = parseInt(this.route.snapshot.paramMap.get('id'));
}
this.linkService.getLinksByUserAndProject(user.username, this.selectedProject).subscribe(links => {
this.links = links;
this.links.forEach(element => {
if (JSON.parse(element).role.id == "2") {
flag = true;
}
});
},
(err: any) => {
});
return flag;
}
答案 0 :(得分:0)
async isProjectLead() {
var flag = false;
//var thisPromiseCount = ++this.promiseCount;
var user = JSON.parse(localStorage.getItem("user"));
if (!this.selectedProject) {
this.selectedProject = parseInt(this.route.snapshot.paramMap.get('id'));
}
try {
var links = await this.linkService
.getLinksByUserAndProject(user.username, this.selectedProject)
.toPromise();
this.links = links;
this.links.forEach(element => {
if (JSON.parse(element).role.id == "2") {
flag = true;
}
});
} catch (e) {
// handle error
}
return flag;
}
返回响应也将是一个承诺,因此您必须等待该承诺解决。