Javascript forEach和$http.get如何处理处于挂起状态且从不返回的请求
这是我第一次使用angular,所以对于糟糕的编码非常抱歉 问题:我在从WebApi获取数据的forEach循环中有一个$http.get。在某些呼叫处于挂起状态且从未收到回电之前,这种方法可以正常工作。如何编写一些逻辑来处理挂起的调用 Hourly.jsJavascript forEach和$http.get如何处理处于挂起状态且从不返回的请求,javascript,angularjs,Javascript,Angularjs,这是我第一次使用angular,所以对于糟糕的编码非常抱歉 问题:我在从WebApi获取数据的forEach循环中有一个$http.get。在某些呼叫处于挂起状态且从未收到回电之前,这种方法可以正常工作。如何编写一些逻辑来处理挂起的调用 Hourly.js $http.get('http://localhost:52332/api/HourlySummary/?' + 'div=' + divarg + '&line='+ i.line)
$http.get('http://localhost:52332/api/HourlySummary/?' + 'div=' + divarg + '&line='+ i.line)
.then(function (response) {
console.log('http then ', i.line);
count++;
if (i.line == 'S') {
storeS.valuesS = response.data;
$scope.date = Date.now();
} else if (i.line == 'M') {
storeM.valuesM = response.data;
$scope.date = Date.now();
} else if (i.line == 'L') {
storeL.valuesL = response.data;
$scope.date = Date.now();
}
if (count == 3) {
myLoop();
}
}, function (response) {
console.log("Somehting went wrong ", i.line);
});
您可以对请求设置超时:
$http.get('/urlpath/', { timeout: 10000 }) // wait 10 seconds
我认为这将在响应中设置一个状态代码-1。您需要将代码减少到零,以解决问题。请看:@T.J.Crowder这是我的问题好一点吗。你能帮我回答我的问题吗?我真的很感激。发现挂起的根本原因可能比写几行JS来解决问题要好——我猜是本地服务器出现了问题。理想情况下,服务器应该返回某种结果或超时。您需要确定api调用中发生这种情况的原因并修复它。另外,您提到在forEach循环中有一个http.get。最好只调用一次api,通过传递参数来获取所需的所有数据。@PeterS和mlhuff。非常感谢你的建议。我正试图找出导致Web API出现问题的原因。我真的很感谢你的积极反馈!