我正在使用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数组...
答案 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(没有重复,只是一个电话后),它似乎有效。