我知道 $digest already in progress 错误问题,但这里我没有显式调用 apply 或 digest 方法
我在同一个 angularJS 函数中使用了两个 http 调用,这导致我出现 $digest already in progress 的错误,我的代码就像
$http.post('/CRUDOper/memberInsert',$scope.memberAdd).
success(function(post){
if(!post.IsSuccess){
alert(post.msg + "Try Again");
return;
}
alert("Member Added Successfully");
}
);
var autopass = Math.random().toString(36).slice(-8);
var passwordinsert = {formno : $scope.memberAdd.formno, password : autopass };
$http.post('/CRUDOper/autogeneratepassword',passwordinsert).
success(function(post){
if(!post.IsSuccess){
alert(post.msg + "Try Again");
return;
}
alert("Autogenerated Password for present user : " + autopass );
}
);
两个请求都被正确调用我担心的是 firebug 中的错误 $digest 已经在进行中,我有什么办法可以处理这个错误吗?
最佳答案
AngularJS 的事件循环不会等到 alert()
、confirm()
和 prompt()
返回一个值(至少用于 $http
调用)。但是,在呈现弹出窗口和进入 $digest
循环之间有一个很短的间隔。这就解释了为什么OP第一次没有报错:OP很快就点击或按下了return。
要亲自验证这不取决于 http 调用的数量,请尝试在单个 http 调用的 success()
方法中使用一个警报。如果您在大约300ms,稍后确认会报错。
关于javascript - 错误 : $digest already in progress when using two Http request calls in same angular Js function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786807/