Невозможно установить свойство 'pur' из неопределенного

1

Я использую угловые с синей птицей и угловыми синими птицами обещания переопределить встроенное Угловое обещание. После перехода на угловой v1.6.5 при вызове $ interval.cancel возникает начисление исключений. Я проверил более раннюю версию углового и добавил следующий код:

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

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

> 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)
  • 0
    Я не уверен, где находится приведенный выше код, но в качестве временного взлома вы можете выполнить Promise.prototype.$$state = {} какой синей птицей все будет в порядке
Теги:
angular
promise
bluebird

1 ответ

0

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

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

Это должно быть 1.6.10. Тем временем вы можете исправить это со стороны Bluebird, выполнив:

Promise.prototype.$$state = {};

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

  • 0
    Спасибо за быстрый ответ. При добавлении этой строки происходит необработанное отклонение события. Я думаю, это для отмененного обещания
  • 0
    Это верно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню