【发布时间】:2019-05-05 12:59:32
【问题描述】:
我有一个返回权限的 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;
}
【问题讨论】:
-
这段代码应该已经可以工作了。 'subscribe' 中的代码只应在
getLinksByUserAndProject返回数据时执行。为什么你认为没有? -
我知道,但我需要将标志返回为真。 http get 请求在返回后完成。我从来没有把标志设为真,所以访问总是被阻止。 @Kokodoko
标签: typescript promise angular5 httprequest guard