Доброго времени суток. Потребовалось мне сделать возможность таймаута у promice в ангуляр у библиотеки $q.
На просторах буржуанета нашел статью, где через декоратор добавляется возможность создавать timeout (
сама статья)
Выполнил все по инструкции, получился такой код:
$provide.decorator('$q', function decorateQ($delegate) {
// $delegate is the native angular $q service
var _defer = $delegate.defer;
// keep the original $q.defer function
$delegate.defer = function newDefer() {
var d = _defer(); // create the deferred object as before
d.promise.timeout = function (ms, callback) {
setTimeout(function () {
if (pending) {
cb(callback);
}
}, ms);
};
return d;
};
});
Но появляется ошибка :
Uncaught TypeError: Cannot read property 'defer' of undefined
и если я правильно понимаю, то интерпритатор не может найти свойство defer в библиотеке $q. Так? Как это победить?