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错误响应。
发布于 2019-06-18 18:02:10
尝试为HTTP请求设置超时:https://stackoverflow.com/a/52188748/6603599
另外,等待2-3分钟的API请求是不符合顺序的。您可以尝试以Stream的形式获取数据,这样就可以为添加到Stream中的每个新元素更新UI。
发布于 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)内部服务器错误服务器错误响应码指示服务器遇到了阻止其完成请求的意外情况。
发布于 2019-06-18 17:59:40
您可以使用async和await来使服务调用等待。
https://stackoverflow.com/questions/56646388
复制相似问题