我想使用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);
答案 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);