gpt4 book ai didi

http - 根据 Angular 2中先前请求的结果执行http请求

转载 作者:可可西里 更新时间:2023-11-01 16:40:49 26 4
gpt4 key购买 nike

我想在 Angular 2 中使用 Observable 时处理异步流。具体来说,在每个用户请求之前,我需要获得服务票据,如果该票据有效,用户可以得到适当的回应。因此,我必须在实际请求之前先做 http 请求,如下所示,我调用了名为 getServiceTicket() 的方法,但是,由于异步流,在我获得有效的服务票证之前,执行了以下 http 请求(getDetail)而没有有效的服务票。所以我尝试使用像 isServiceTicket 这样的标志,但我意识到它不能保证这两种方法的顺序运行。我试图做一些研究,但找不到满意的答案。如果有人对此有好的解决方案,你能给点建议吗?

getServiceTicket() {
this.userAuthServie.getServiceTicket().subscribe(
(data: string) => {this.serviceTicket = data; this.isServiceTicket = true;}
);
}

getDetail(id: string) {
this.getServiceTicket();
return this.http.get('https://localhost/detail/' + id + '?ticket=' + this.serviceTicket)
.map( (responseData) => {
return <User>responseData.json();
}
);
}

最佳答案

您可以像下面这样更改您的代码:

user:User;

getDetail(id: string) {

this.userAuthServie.getServiceTicket()
.subscribe((data: string) => {
this.serviceTicket = data;
this.isServiceTicket = true;
this.http.get('https://localhost/detail/' + id + '?ticket=' + this.serviceTicket)
.map( (responseData) => {
this.user= <User>responseData.json();
});
});

}

关于http - 根据 Angular 2中先前请求的结果执行http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41020540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com