.promise( [type ] [, target ] )返回值: Promise
描述: 返回一个 Promise 对象,用于观察绑定到集合的所有特定类型操作(无论是否排队)何时完成。
.promise()
方法返回一个动态生成的 Promise,当绑定到集合的所有特定类型操作(无论是否排队)完成时,该 Promise 将被解析。
默认情况下,type
为 "fx"
,这意味着当所选元素的所有动画完成时,返回的 Promise 将被解析。
解析上下文和唯一参数是调用 .promise()
的集合。
如果提供了 target
,.promise()
将把方法附加到它,然后返回此对象而不是创建一个新对象。这对于将 Promise 行为附加到已存在对象很有用。
注意: 返回的 Promise 与存储在元素 .data()
中的 Deferred 对象相关联。由于 .remove()
方法会删除元素的数据以及元素本身,因此它将阻止元素的任何未解析的 Promise 解析。如果需要在 Promise 解析之前从 DOM 中删除元素,请使用 .detach()
代替,并在解析后使用 .removeData()
。
示例
对没有活动动画的集合使用 .promise()
返回一个已解析的 Promise
1
2
3
4
5
6
|
|
当所有动画结束时解析返回的 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
|
|
演示
使用 $.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
|
|