在我的角度代码中,我有一个长轮询的代码,如下所示
var request = function() {
$http.post(url).then(function(res) {
var shouldStop = handleData(res);
if (!shouldStop()) {
request()
}
};
}
request();
函数将在页面加载后立即调用。
但是,现在我尝试在Protractor中设置测试,并得到了这个错误消息。
失败:在11秒后超时等待量角器与页面同步。请看https://github.com/angular/protractor/blob/master/docs/faq.md。下列任务尚未完成:
在文档中,我看到了以下内容:
在执行任何操作之前,Protractor要求角等待页面同步。这意味着所有超时和http请求都完成了。如果您的应用程序不断轮询$timeout或$http,则永远不会将其注册为完全加载。您应该将$interval服务(interval.js)用于任何连续轮询(在角1.2rc3中引入)。
如何编辑代码以使用$interval
?我认为interval是window.setInterval
的一个角包装器,我不知道如何将它用于长轮询。
发布于 2015-10-24 15:22:34
哦,文档中的$interval
东西属于$timeout
,而不是$http
。
好的,我将丢弃角的$http
,只使用fetch
(附加的$rootScope.$apply
和JSON反序列化)来做同样的事情
https://stackoverflow.com/questions/33319594
复制相似问题