.promise( [type ] [, target ] )返回: Promise
描述: 返回一个 Promise 对象,用于观察绑定到集合上的所有特定类型(无论是否排队)的操作何时完成。
-
版本新增: 1.6.promise( [type ] [, target ] )
-
type (默认值:
fx)类型: 字符串需要观察的队列类型。 -
target类型: PlainObjectPromise 方法将附加到的对象。
-
.promise() 方法返回一个动态生成的 Promise,当绑定到集合上的所有特定类型(无论是否排队)的操作结束时,该 Promise 将被解决(resolved)。
默认情况下,type 是 "fx",这意味着当所选元素的所有动画完成时,返回的 Promise 将被解决。
解决上下文和唯一参数是调用 .promise() 的集合。
如果提供了 target,.promise() 会将方法附加到该对象上,然后返回此对象,而不是创建一个新的对象。这对于将 Promise 行为附加到已存在的对象上很有用。
注意: 返回的 Promise 与存储在元素 .data() 中的一个 Deferred 对象相关联。由于 .remove() 方法会移除元素本身以及元素的数据,因此它会阻止该元素任何未解决的 Promise 被解决。如果需要在 Promise 解决之前从 DOM 中移除元素,请改用 .detach(),并在解决后使用 .removeData()。
示例
示例 1
对没有活动动画的集合使用 .promise() 会返回一个已解决的 Promise。
|
1
2
3
4
5
6
|
|
示例 2
当所有动画结束时(包括在动画回调中发起或稍后添加的动画),解决返回的 Promise。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
|
演示
示例 3
使用 $.when() 语句解决返回的 Promise(.promise() 方法使得使用 jQuery 集合执行此操作成为可能)。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
|