首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当多个api调用同时运行时,中断一个api调用,并在angular5中优先处理被中断的api调用。

当多个api调用同时运行时,中断一个api调用,并在angular5中优先处理被中断的api调用。
EN

Stack Overflow用户
提问于 2018-08-17 21:22:13
回答 1查看 38关注 0票数 0

我正在发送多个httpclient请求simultaneously.If我正在导航到特定的页面。我必须发送与该页面相关的应用程序接口调用和响应应该立即到来的api call.Can任何人请帮助我。

我有一个像下面这样的服务方法。我在我的主页中调用它,然后我在它运行的时候导航到另一个页面。我应该中断另一个api调用,并且应该立即获得该api调用的响应。

代码语言:javascript
复制
MultipleApiMethod() {
  this.GetFirstDataFromApi().subscribe(res => { });
  this.GetFirstDataFromApi().subscribe(res => { });
}

GetFirstDataFromApi() {
  let url = "firstdataapi"
  return this._httpClient.get(url).map(res => res).catch(err => {
    return
    Observable.throw(err)
  });
}

GetSecondDataFromApi() {
  let url = "seconddataapi"
  return this._httpClient.get(url).map(res => res).catch(err => {
    return
    Observable.throw(err)
  });
}

。。。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-17 21:35:20

您希望实现以下目标:

当执行第一个Api请求时,然后执行第二个Api请求,当第一个和第二个Api请求已经到达服务器时,正在进行第三个Api请求,如果它满足一定的条件,则它应该在第一个和第二个Api请求之前从服务器返回到客户端。

在高标准的代码中,这不能仅从客户端实现。

您可以将所需的各种状态的Enum值添加到httpClient请求中,以便服务器将此状态解释为等待机制的条件(例如,在C#中的多线程等待中)。

这意味着您需要处理多个线程。

仅从客户端执行此操作的一种不正当方法是使用Authguard这样的middleWear服务来处理所有请求,首先添加一个在请求没有返回时隐藏屏幕的加载器,并设置一个合理的超时,直到第三个Api调用没有返回,以便使用切换情况根据返回的响应来决定下一步应该发生什么。

祝你好运,伙计

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51896365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档