使用Restangular进行角度轮询

时间:2015-01-15 10:44:55

标签: angularjs promise restangular

我想使用Restangular轮询后端,直到满足条件。我正在使用Angular Poller进行轮询(https://github.com/emmaguo/angular-poller)。它会返回一个承诺。

以下代码正确执行轮询,但我无法访问返回的数据。 然后中的console.log未打印。

这里发生了什么?

var myPoller = poller.get(Restangular.one('batches',$routeParams.panel_id), {
     action: 'get',
     delay: 1000,
     arguementsArray: []
  });


  myPoller.promise.then(function(batch){
     $scope.running = batch.batch_status;
     console.log('Status: ' + batch.batch_status);
     if (batch.batch_status === 'complete'){
        myPoller.stop();
     }
  });

更新

Angular Poller的文档是指回调。

https://github.com/emmaguo/angular-poller#customize-restangular-poller

myPoller.promise.then(null, null, callback);

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。对于其他想要使用Restangular和Angular Poller的人来说,这是我的工作代码。

我遇到的部分是如何从Restangular访问返回的对象。原来你只是假设它被传递,并在回调中引用它。

然后可以通过查看返回的数据来构建轮询停止条件。

 var callback = function(batch) {
     console.log("in the callback " + batch.batch_status);
     $scope.running = batch.batch_status;
     if (batch.batch_status.hasOwnProperty('complete')){
        myPoller.stop();
     }

  }


  var myPoller = poller.get(Restangular.one('batches',$routeParams.panel_id), {
     action: 'get',
     delay: 1000,
     arguementsArray: []
  });

  myPoller.promise.then(null,null,callback);