Angular 9服务,请确保在完成下一个呼叫[已关闭]之前的呼叫已完成

问题描述 投票:-1回答:1

在目前的情况下,我需要先获取用户上下文(其中包含诸如用户文化,ID和令牌之类的信息),然后在呈现主页/主页之前将其与随后的调用(作为标题)一起传递。

问题特别是与Observables和异步管道有关,它们都一个接一个地运行,从而使后续调用失败。

我尝试了路由解析器,但问题是,在多个位置(页眉/导航栏)和主页中调用了userContent,因此无法正确同步。

此外,在解析程序调用的服务中,最好的方法是缓存/存储数据,以便可以在以后的调用中使用它。

请帮助。

angular async-await rxjs angular-ui-router observable
1个回答
0
投票
您可以使用

回叫方法像这样进行随后呼叫:

ngOnInit() { this.firstApiCallFunction(function () { this.secondApiCallingFunction(); }); } firstApiCallFunction(callback) { if (typeof callback === "function") { this.myService.getUseroCntext(this.reqData).subscribe( res => { console.log("getUseroCntext res:",res); this.user = res.user; callback.call(this, this.user); }, err => { console.error("Error occured when getUseroCntext", err); callback.call(this, "User Load Failed"); }); } } secondApiCallingFunction(): void { this.myService.getOtherInfo(this.user).subscribe( res => { console.log("getOtherInfo: ", res); }, err => { console.log("getOtherInfo error: ", err); }); }
© www.soinside.com 2019 - 2024. All rights reserved.