javascript - AngularJS 使用 ng-resource 和多种服务器轮询方法

标签 javascript angularjs ngresource

我正在使用基于这个答案的方法:Server polling with AngularJS

但是当我有多种轮询方法时,如何设置此更新?

这是我的服务片段:

function pollingService($resource) {
    return {
        methodA: $resource(window.rootUrl + 'api/methodA', { para: '@para1' }, {
            query: { method: 'GET', params: {}, isArray: false }
        }),
        methodB: $resource(window.rootUrl + 'api/methodB', {}, {
            query: { method: 'GET', params: {}, isArray: false }
        })
    }
};

那么我怎样才能设置tick方法来轮询这2个方法并且只创建1个轮询循环呢?

(function tick() {
    $scope.method1 = pollingService.methodA.query(function () {
        $timeout(tick, $scope.refreshRate);
    });
    $scope.method2 = pollingService.methodB.query(function () {
        $timeout(tick, $scope.refreshRate);
    });
})();

最佳答案

您可以使用 Promise $q.all 函数:

var myTickFunc = function() {
  return $q.all([pollingService.methodA.query().$promise, pollingService.methodA.query().$promise)
     .then(function(result){ 
            //Setup timer again
});

关于javascript - AngularJS 使用 ng-resource 和多种服务器轮询方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134666/

相关文章:

javascript - 请求正文与提交的数据不同

javascript - 试图让 Angularjs 显示 promise 时出现无限循环

javascript - 使用 ng-repeat 以 Angular 将所选应用到最后一个选项

javascript - 使用 AngularJS 在 HTML 标记上执行 if/else

javascript - AngularJS - XX 不是一个函数

angularjs - 使用 $resource 响应测试执行服务的 Controller

javascript - 通过 $scope 访问函数中的 ng-resource 会导致无限循环

Javascript 表单验证返回 false 错误

javascript - 如何使用 CSS 在 HTML 中设置外部 SVG 颜色?

javascript - 追加到 JQuery 中的 div