Javascript 如何在Angular中使用$interval进行连续轮询?

Javascript 如何在Angular中使用$interval进行连续轮询?,javascript,angularjs,protractor,Javascript,Angularjs,Protractor,在我的Angular代码中,我有一个长轮询代码,看起来像这样 var request = function() { $http.post(url).then(function(res) { var shouldStop = handleData(res); if (!shouldStop()) { request() } }; } request(); 该函数在页面加载后立即被调用 然而,现在我正试图在

在我的Angular代码中,我有一个长轮询代码,看起来像这样

var request = function() { 
    $http.post(url).then(function(res) {
        var shouldStop = handleData(res);
        if (!shouldStop()) {
            request()
        }
     };
}
request();
该函数在页面加载后立即被调用

然而,现在我正试图在量角器中设置测试,我得到了这个错误消息

失败:等待量角器与页面同步11秒后超时。请看 . 以下任务处于挂起状态:

在报告中,我读到以下内容:

在执行任何操作之前,量角器要求Angular等待页面同步。这意味着所有超时和http请求都已完成。如果您的应用程序连续轮询$timeout或$http,它将永远不会被注册为完全加载。您应该使用$interval服务(interval.js)来处理任何连续轮询的内容(在Angular 1.2rc3中引入)


如何编辑代码以使用
$interval
?我认为interval是
窗口的一个角度包装。setInterval
,我不知道如何使用它进行长时间轮询。

哦,文档中的
$interval
属于
$timeout
,而不是
$http


好吧,我将扔掉Angular的
$http
,只使用
获取
(附加
$rootScope.$apply
和JSON反序列化)来做同样的事情

哦,文档中的
$interval
属于
$timeout
,而不是
$http


好吧,我将扔掉Angular的
$http
,只使用
获取
(还有额外的
$rootScope.$apply
和JSON反序列化)来做同样的事情

您可能需要查看套接字io进行长时间轮询。不幸的是,服务器不是我们现在可以更改为websocket的东西。您可能需要查看套接字io以进行长时间轮询。不幸的是,服务器不是我们现在可以更改为websocket的东西