forEach with $ http.get当请求保持挂起并且永不返回时如何处理

时间:2016-05-26 14:52:07

标签: javascript angularjs

这是我第一次使用angular非常抱歉这个糟糕的编码。

问题:我在forEach循环中有一个$ http.get,它从WebApi获取数据。这可以正常工作,直到某些呼叫保持挂起状态并且永远不会收到回叫。如何在呼叫保持挂起时编写一些逻辑来处理?

Network Picture

Hourly.js

         $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);
                     });

1 个答案:

答案 0 :(得分:0)

您可以在请求上设置超时:

$http.get('/urlpath/', { timeout: 10000 })   // wait 10 seconds

认为在响应中放置了状态代码-1。