这是我的解决方案:
app.factory('Poller', function($http, $timeout) { var data = { response: {}, calls: 0 }; var poller = function() { $http.get('data.json').then(function(r) { data.response = r.data; data.calls++; $timeout(poller, 1000); }); }; poller(); return { data: data };});
(只是为了表明轮询已完成)
http://plnkr.co/edit/iMmhXTYweN4IrRrrpvMq?p=preview
编辑: 正如乔什·大卫·米勒(Josh David
Miller)在评论中建议的那样,应在app.run块中添加对此服务的依赖关系,以确保从头开始进行轮询:
app.run(function(Poller) {});
并在上一个呼叫完成后移动了下一个轮询的计划。因此,如果轮询挂起很长时间,就不会有“堆叠”的呼叫。
更新了插件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)