首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >赛车条件: Racing和Database

赛车条件: Racing和Database
EN

Stack Overflow用户
提问于 2015-05-08 14:05:49
回答 1查看 111关注 0票数 4

我有一个有角度的服务,迭代一个列表,进行web api调用,在数据库中添加/修改记录(操作一个小记录集-最多10个记录来更新)。由于角服务正在返回承诺,因此在循环完成后,使用一些更新的数据重新加载状态。只有在刷新页面之后,列表才会完全更新。一切都如预期的那样工作;不过,我认为在数据库完全完成其操作之前,角正在返回。有什么方法可以让我有角度的等待返回直到所有的更新完成吗?

下面是对调用角服务的列表(有最多10个项)的迭代:

代码语言:javascript
复制
for (var i = 0, ii = $scope.Model.permissions.length; i < ii; i++) {
    //if id === 0, it is a new record
    if ($scope.Model.permissions[i].New === true && $scope.Model.permissions[i].Deleted === false) {
        angularService.update($scope.Model.permissions[i]);
    }
}

在过去,我曾使用$q等待所有承诺在执行一段代码之前得到解决:

代码语言:javascript
复制
$q.all([$scope.Model.permissions.$promise,
    $scope.Model.configurations.$promise
]).then(function () {
    $scope.dataLoaded = true;
});

每一项承诺都将分配给资源调用:

$scope.Model.permissions = permissionFactory.fetch({ id: $stateParams.id);...

我不认为我可以使用这个模式仅仅因为我正在循环列表。

如有任何帮助或指导,将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-08 14:16:05

代码语言:javascript
复制
ArrayOFPromises = [];

for (var i = 0, ii = $scope.Model.permissions.length; i < ii; i++) {
    //if id === 0, it is a new record
    if ($scope.Model.permissions[i].New === true && $scope.Model.permissions[i].Deleted === false) {
        ArrayOFPromises.push(angularService.update($scope.Model.permissions[i]));
    }
}

然后

代码语言:javascript
复制
$q.all(ArrayOFPromises).then(function () {
    //dosomething
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30125835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档