Javascript 无法读取属性'$$州';AngularJS版本升级后出现未定义错误

Javascript 无法读取属性'$$州';AngularJS版本升级后出现未定义错误,javascript,angularjs,bower,Javascript,Angularjs,Bower,我一直在与AngularJS合作,将我们的项目版本从1.2.16升级到1.6.4。由于我们使用bower作为包管理器,因此我更新了bower.json的必要部分,如下所示: { "name": "takademi", "version": "0.0.0", "dependencies": { "angular": "1.6.4", "json3": "~3.3.1", "es5-shim": "~3.1.0", "angular-cookies": "1.6.4", "ang

我一直在与AngularJS合作,将我们的项目版本从1.2.16升级到1.6.4。由于我们使用bower作为包管理器,因此我更新了bower.json的必要部分,如下所示:

{
"name": "takademi",
"version": "0.0.0",
"dependencies": {
  "angular": "1.6.4",
  "json3": "~3.3.1",
  "es5-shim": "~3.1.0",
  "angular-cookies": "1.6.4",
  "angular-sanitize": "1.6.4",
  "angular-animate": "1.6.4",
  "angular-route": "1.6.4",
  "angular-bindonce": "~0.3.1",
  "restangular": "~1.4.0",
  "angular-base64": "~2.0.2",
  "lodash": "~2.4.1"
},
"devDependencies": {
"angular-mocks": "1.2.16",
"angular-scenario": "1.2.16"
},
"appPath": "app"
}
更新之后,我运行了这个项目。现在我可以看到angular的版本为1.6.4,但我得到以下错误:

*** process.env.ENV is not defined, assuming 'prod' env
t @ bundle.js:4776
angular.js:14525 TypeError: Cannot read property '$$state' of undefined
    at then (angular.js:16799)
    at addPromiseLikeThing (angular-busy.js:67)
    at angular-busy.js:22
    at Object.forEach (angular.js:403)
    at Object.tracker.reset (angular-busy.js:18)
    at angular-busy.js:175
    at $watchCollectionAction (angular.js:17859)
    at Scope.$digest (angular.js:17999)
    at Scope.$apply (angular.js:18269)
    at done (angular.js:12387)
(anonymous) @ angular.js:14525
getMarketPlace Failed to load resource: the server responded with a status of 401 (Unauthorized)
angular.js:14525 Possibly unhandled rejection: {"data":{"status":401,"module":0,"code":1000,"message":"AUTHENTICATION_REQUIRED","develo    perMessage":null,"moreInfo":null},"status":401,"config": {"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","params":{"v":967},"headers":{"Accept":"application/json, text/plain, */*"},"url":"/portal/rest/market-place/getMarketPlace"},"statusText":"Unauthorized"}
(anonymous) @ angular.js:14525
(anonymous) @ angular.js:11008
processChecks @ angular.js:16860
$digest @ angular.js:17971
$apply @ angular.js:18269
done @ angular.js:12387
completeRequest @ angular.js:12613
requestLoaded @ angular.js:12541
据我所知,它只是说明我新升级的AngularJS 1.6.4文件不支持使用
$$state
关键字。错误不是显示我们开发的文件,而是来自Angular自己的文件

以下是chrome浏览器引导我显示error-16799行angular.js的功能:

  function Promise() {
this.$$state = { status: 0 };
  }

  extend(Promise.prototype, {
    then: function(onFulfilled, onRejected, progressBack) {
      if (isUndefined(onFulfilled) && isUndefined(onRejected) && isUndefined(progressBack)) {
        return this;
      }
      var result = new Promise();

      this.$$state.pending = this.$$state.pending || [];
      this.$$state.pending.push([result, onFulfilled, onRejected, progressBack]);
      if (this.$$state.status > 0) scheduleProcessQueue(this.$$state);

      return result;
    },

    'catch': function(callback) {
      return this.then(null, callback);
    },

    'finally': function(callback, progressBack) {
      return this.then(function(value) {
        return handleCallback(value, resolve, callback);
      }, function(error) {
        return handleCallback(error, reject, callback);
      }, progressBack);
    }
  });
我在SO和Google上搜索了一下,但找不到任何与我的问题相关的帖子或解释。大多数答案都与Ruby或react有关:

因为我不知道AngularJS和bower的全部特性,这些答案对我来说并不清楚

你们能帮我一下吗

提前谢谢

不是由AngularJS团队创建的。函数
addPromiseLikeThing
看起来可疑,是在进入$q库爆炸之前执行的最后一件事。使用“promiseLike”对象伪造$q库可能是错误的原因

此外,AngularJS V1.6还改变了处理拒绝的方式。错误消息:

angular.js:14525可能未处理的拒绝:{“数据”:{“状态”:401

是这些变化的结果


有关更多信息,请参见

关于状态401无法加载资源“url”的说明:“/portal/rest/market place/getMarketPlace”“statusText”:“未经授权”?还有什么是AngularJS busy.js?您使用的是哪个版本?6个月前AngularJS 1.6 promise methods进行了升级。@GeorgeWG我无法深入angular busy了解它到底在做什么,但据我所知,它与angular自己的库()有关.另一方面,对于您的第一个评论,我认为我应该首先解决$$state问题来处理该问题。因为它似乎又与AngularJS自己的库有关。
angular busy
不是AngularJS团队创建的。函数
addPromiseLikeThing
看起来可疑,并且是进入之前执行的最后一件事发生爆炸的$q库。使用“promiseLike”对象伪造$q库可能是错误的原因。嘿@GeorgeWG,我已经调查了angular busy,正如您所说的,
addPromiseLikeThing
函数导致了问题。当我更新angular busy时,问题得到了解决。请随意添加此注释作为一个注释回答,这样我就可以接受了。