Невозможно установить свойство 'pur' из неопределенного - PullRequest
0 голосов
/ 07 мая 2018

Я использую Angular с Bluebird и Angular-Bluebird-Promises , чтобы переопределить встроенное обещание Angular.После обновления до angular v1.6.5 при вызове $ interval.cancel возникает исключение.Я проверил более раннюю версию angular, и был добавлен следующий код:

function markQStateExceptionHandled(state) {
  state.pur = true;
}
function markQExceptionHandled(q) {
  markQStateExceptionHandled(q.$$state);
}

проблема в том, что у обещания bluebird нет атрибута состояния $$, и выдается исключение:

> TypeError: Cannot set property 'pur' of undefined
>         at markQStateExceptionHandled (angular.js?3437:17654)
>         at markQExceptionHandled (angular.js?3437:17657)
>         at Function.interval.cancel (angular.js?3437:13650)
>         at eval (ng-infinite-scroll.js?6418:180)
>         at callback (angular.js?3437:13629)
>         at Scope.$digest (angular.js?3437:18515)
>         at Scope.$apply (angular.js?3437:18903)
>         at tick (angular.js?3437:13619)

1 Ответ

0 голосов
/ 07 мая 2018

Это ошибка в Angular.js . Существует запрос на получение , чтобы исправить это, изменив код, чтобы проверить, есть ли $$state:

function markQStateExceptionHandled(state) {
  if (state) {
    state.pur = true;
  }
}

Это связано с 1.6.10. А пока вы можете исправить это со стороны Bluebird, выполнив:

Promise.prototype.$$state = {};

Я могу пообещать, что это ничего не испортит со стороны синей птицы и не будет иметь слишком много недостатков, кроме того, чтобы быть безобразным хаком.

...