Page 194 - AngularJS权威教程
P. 194
174 第 17 章 promise
17.4.1 all(promises)
如果我们有多个promise,想要把它们合并成一个,可以使用$q.all(promises)方法来把它
们合并成一个promise。这个方法带有一个参数。
promises(数组或者promise对象)
一个promise数组或者promise的hash。
all()方法返回单个promise,会执行一个数组或者一个散列的值。每个值会响应promise散列
中的相同序号或者键。如果任意一个promise被拒绝了,结果的promise也会被拒绝。
17.4.2 defer()
defer()方法创建了一个deferred对象,它没有参数,返回deferred对象的一个实例。
17.4.3 reject(reason)
这个方法创建了一个promise,被以某一原因拒绝执行了。它专门用于让我们能在一个promise
链中转发拒绝的promise,类似JavaScript中的throw。在同样意义上,我们能在JavaScript中捕获一
个异常,也能够转发这个拒绝,我们需要把这个错误重新抛出。可以通过$q.reject(reason)来
做到这点。
这个方法带有单个参数:
reason(常量、字符串、异常、对象)
拒绝的原因。
reject()方法返回一个已经用某个原因拒绝的promise。
17.4.4 when(value)
when()函数把一个可能是值或者能接着then的promise包装成一个$q promise。这样我们就能
处理一个可能是也可能不是promise的对象。
when()函数有一个参数:
value
该参数是个值,或者是promise
when()函数返回了一个promise,我们可以像使用其他promise一样使用它。