gpt4 book ai didi

javascript - 在使用 Promise.then AngularJS foreach 之后仅显示一条消息

转载 作者:行者123 更新时间:2023-11-28 05:00:50 24 4
gpt4 key购买 nike

大家好,我在 AngularJS 中使用确认按钮中的 REST 调用了这个函数。保存没问题,问题发生在成功或错误消息中。如果成功,它应该在循环执行后仅显示一条成功消息,或者多次显示任何错误的错误消息。我使用了一个标志 isError 来获取是否发生错误,但无论我做什么都没关系,“if (isError == false){”总是在循环结束之前执行。

 $scope.confirm = function () {
var isError = false;
var i=0;
$scope.displayedmodalcollection.forEach(function(item) {
i++;
delete item.added;
result = DataBase.update({
id: item._id,
endpoint: item._type
}, item._source).$promise.then(function(response) {

}, function(err) {
isError = true;
if (err.status === 500) {
ngToast.create({
className: 'warning',
content: String.format('Any message.', item._id)
});
}
else if (err.status === 404) {
ngToast.create({
className: 'danger',
content: '404 - other message'
});
} else {
ngToast.create({
className: 'danger',
content: 'Error'
});
}
});
});
if (isError == false){

ngToast.create({
className: 'success',
content: 'Success'
});
}
};

有人对此有建议吗?谢谢

最佳答案

我不确定您希望如何处理成功的更新和错误,但这应该会让您走上正轨:

$scope.confirm = function() {
var successes = 0;
var errors = 0;
$scope.displayedmodalcollection.forEach(function(item) {
delete item.added;
result = DataBase.update({
id: item._id,
endpoint: item._type
}, item._source).$promise.then(function(response) {
successes++;
checkStatus(successes, errors);
}, function(err) {
errors++;
checkStatus(successes, errors);
if (err.status === 500) {
ngToast.create({
className: 'warning',
content: String.format('Any message.', item._id)
});
} else if (err.status === 404) {
ngToast.create({
className: 'danger',
content: '404 - other message'
});
} else {
ngToast.create({
className: 'danger',
content: 'Error'
});
}
});
});
};

function checkStatus(successes, errors) {
var isCompleted = (successes + errors) == $scope.displayedmodalcollection.length;
var notAllFailed = successes > 0;
if (isCompleted && notAllFailed) {
handleSuccessToast();
}
}

function handleSuccessToast() {
ngToast.create({
className: 'success',
content: 'Success'
});
}

关于javascript - 在使用 Promise.then AngularJS foreach 之后仅显示一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42142629/

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