gpt4 book ai didi

javascript - 赛车状态 : Angular vs Web API & Database

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:45:04 24 4
gpt4 key购买 nike

我有一个 Angular 服务遍历一个列表,调用 Web API 来添加/修改数据库中的记录(在一个小记录集上运行——最多更新 10 条记录)。由于 Angular 服务正在返回 promise ,因此在循环完成后 Angular 重新加载状态并更新了一些数据。只有在我刷新页面后,列表才会完全更新。一切都按预期工作;但是我认为在数据库完全完成其操作之前, Angular 正在返回。有没有办法让我有 Angular 等待返回,直到完成所有更新?

这是调用 Angular 服务的迭代列表(最多 10 个项目):

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 来等待所有的promise 被解决后再执行一段代码:

$q.all([$scope.Model.permissions.$promise,
$scope.Model.configurations.$promise
]).then(function () {
$scope.dataLoaded = true;
});

每个 promise 将分配给资源调用的地方:

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

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

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

最佳答案

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]));
}
}

然后

$q.all(ArrayOFPromises).then(function () {
//dosomething
});

关于javascript - 赛车状态 : Angular vs Web API & Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30125835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com