使用Restangular - AngularJS发布一个对象数组

时间:2016-10-13 16:38:31

标签: angularjs queue restangular

我正在使用Restangular来为单个对象进行API调用,如下所示:

$scope.box = { name : "box_a" , id : 1 };

Restangular.all('boxes/')
    .post($scope.box)
    .then(function(){
        ...
    });

但是现在,用户可以选择一次添加多个框。所以,我想将多个对象发布到我的API,但我需要等待每个请求,直到完成,或者我的数据库将“锁定”...

我的快速添加对象如下:

$scope.boxes = [
    { name : "box_a" , id : 1 },
    { name : "box_b" , id : 2 },
    { name : "box_c" , id : 3 }
]

如何通过循环$scope.boxes来创建承诺链?我无法弄清楚如何使用Restangular创建一个promises数组...

1 个答案:

答案 0 :(得分:0)

我不太了解restangular,但您可以使用reduce函数链接这些请求,如:

$scope.boxes.reduce(function(promise, newBox){
    return promise.then(function(){

      return Restangular.all('boxes/')
             .post(newBox)
             .then(function(){
                 ...
             });
    });
  }, $q.resolve());

我做了一个fiddle(没有重复,只是一个电话后),它似乎有效。