【发布时间】:2014-08-18 02:04:06
【问题描述】:
我正在尝试处理 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()有什么区别?何时使用? -
deferred.promise.then(successFn, errorFn)中的errorFn和deferred.promise.catch(catchFn)中的catchFn是什么关系? - 如果我有一堆嵌套的 Promise 并且发生错误,是否会始终调用最外层的
catch()函数?如果其中一个嵌套的 Promise 也定义了一个 catch 函数怎么办?这个 catch 会阻止最外层的 catch 执行吗?
谢谢。
【问题讨论】:
标签: javascript angularjs promise