Я пытаюсь получить дескриптор службы Angular $q
и связанных с ним объектов и API. Когда я смотрю на объекты в консоли, я вижу:
var deferred = $q.defer()
...(and then from console inspection)...
$q: Object {defer: function, reject: function, when: function, all: function}
deferred: Object {resolve: function, reject: function, notify: function, promise: Object}
deferred.promise: Object {then: function, catch: function, finally: function}
Возникает несколько вопросов:
- В чем разница между
$q.reject()
иdeferred.reject()
? Когда использовать каждый? - Какая связь между
errorFn
вdeferred.promise.then(successFn, errorFn)
иcatchFn
вdeferred.promise.catch(catchFn)
? - Если у меня есть куча вложенных promises и возникает ошибка, всегда будет вызываться самая внешняя функция
catch()
? Что, если одна из вложенных promises также имеет функцию catch? Будет ли этот улов предотвращать выполнение самого внешнего улова?
Спасибо.