javascript - 错误 : $digest already in progress when using two Http request calls in same angular Js function

标签 javascript angularjs

我知道 $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/

相关文章:

javascript - 无法访问 Angular 中的对象值

angularjs - 当您只能访问模块变量时注入(inject)模块

JavaScript 动态类型 int/float

javascript - 如何正确拆分 url,然后在 javascript 中获取剩余部分?

javascript - 将 Ruby 1.9.2 代码转换为 JavaScript?

javascript - Protractor 和 Jasmine 永远不会解决获取网页标题的 promise

javascript - 如何使用 Angular.js 添加裁剪图像

javascript - Mapbox GL - 如何检查点是否位于旋转边界框内?

javascript - 使用 ng-pattern 进行验证是否违反关注点分离?

java - 如何使用 Jetty 为 Angular 应用程序提供服务,并与 Jersey 一起使用相同的服务器?