首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 2.进行服务调用,等待API返回数据

Angular 2.进行服务调用,等待API返回数据
EN

Stack Overflow用户
提问于 2019-06-18 17:53:42
回答 4查看 1.6K关注 0票数 1

Angular服务调用如下所示,

代码语言:javascript
复制
SearchAssets(searchAssetsModel: SearchAssetsModel): Observable<any> {
    return this.httpClient.post<any>(this.webApiUrl + "SearchAssets/SearchAssets/", searchAssetsModel);
}

在我的组件中,我订阅了如下所示的服务,

代码语言:javascript
复制
this.searchAssetsService.SearchAssets(searchAssetsModel).subscribe(
  (data) => {}
)

可以肯定的是,API会在2-3分钟的服务调用后返回数据,但现在的问题是,Angular服务没有等到API返回数据。等待1.5分钟后会给出500错误响应。

EN

回答 4

Stack Overflow用户

发布于 2019-06-18 18:02:10

尝试为HTTP请求设置超时:https://stackoverflow.com/a/52188748/6603599

另外,等待2-3分钟的API请求是不符合顺序的。您可以尝试以Stream的形式获取数据,这样就可以为添加到Stream中的每个新元素更新UI。

票数 0
EN

Stack Overflow用户

发布于 2019-06-19 03:48:57

你下面的说法是不正确的。

...the问题是Angular服务没有等到API返回数据。等待1.5分钟后会给出500错误响应。

500 error是来自您的服务器端的内部错误,这意味着您的服务器端有一个bug。可能是编码问题,也可能是你的api在长会话时返回错误。

Angular Http服务与你的500错误没有任何关系。您可以通过使用不同的客户端检查api结果来测试这一点(类似于Postman)。

无论如何,一旦你修复了你的服务器端,问题就解决了。

有关500error的更多详细信息,请查看this developer.mozilla.org link。下面的文本来自此链接:

HyperText传输协议(HTTP500)内部服务器错误服务器错误响应码指示服务器遇到了阻止其完成请求的意外情况。

票数 0
EN

Stack Overflow用户

发布于 2019-06-18 17:59:40

您可以使用async和await来使服务调用等待。

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

https://stackoverflow.com/questions/56646388

复制
相关文章

相似问题

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