首页 > 解决方案 > Angular 2. 进行服务调用以等待 API 返回数据

问题描述

Angular服务调用如下图,

SearchAssets(searchAssetsModel: SearchAssetsModel): Observable<any> {
    return this.httpClient.post<any>(this.webApiUrl + "SearchAssets/SearchAssets/", searchAssetsModel);
}

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

this.searchAssetsService.SearchAssets(searchAssetsModel).subscribe(
  (data) => {}
)

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

标签: angularangular2-servicesangular-httpclient

解决方案


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

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

500 错误是来自您服务器端的内部错误,这意味着您的服务器端存在错误。可能是编码问题,或者您的 api 在长时间会话中返回错误。

AngularHttp服务与您的 500 错误无关。您可以通过使用不同的客户端来检查 api 结果(类似于Postman)来对此进行测试。

无论如何,一旦你修复了服务器端,问题就消失了。

查看此 developer.mozilla.org 链接,了解有关 500 错误的更多详细信息。下面的这段文字来自这个链接:

超文本传输​​协议 (HTTP) 500 内部服务器错误服务器错误响应代码表示服务器遇到了阻止它完成请求的意外情况。


推荐阅读