jQuery deferred .promise()方法
JQuery中的这个.promise()方法返回一个Promise对象,当与集合绑定的某些类型的行动,无论是否排队,都将被观察到。
语法:
.promise([type][, target])
参数:
- type :该参数指定需要观察的队列类型。
- target : 这个参数指定了需要连接到承诺方法的对象。
返回值 。该方法返回一个动态生成的Promise,一旦与该集合绑定的动作(无论是否排队)完成,该方法就会被解析。
下面讨论两个例子。
- 例子:在这个例子中,Deferred()被用来创建一个新的对象,之后then()方法被调用通知和解决方法。
<!DOCTYPE HTML>
<html>
<head>
<title>
JQuery.when() method
</title>
<script src="https://code.jquery.com/jquery-3.5.0.js">
</script>
</head>
<body style="text-align:center;">
<h1 style="color:green">
GeeksForGeeks
</h1>
<p id="GFG_UP">
</p>
<button onclick = "Geeks();">
click here
</button>
<p id="GFG_DOWN">
</p>
<script>
var el_up = document.getElementById("GFG_UP");
el_up.innerHTML = "JQuery.when() method";
var def = .Deferred();
function Geeks() {
.when().then(function(a) {
alert( "when() method called this alert()." );
});
}
</script>
</body>
</html>
输出 :
在点击按钮之前:
点击按钮后:
- 例子:在这个例子中,Deferred()方法被使用,Deferred对象的状态被检查。
<!DOCTYPE HTML>
<html>
<head>
<title>
JQuery.when() method
</title>
<script src="https://code.jquery.com/jquery-3.5.0.js">
</script>
</head>
<body style="text-align:center;">
<h1 style="color:green">
GeeksForGeeks
</h1>
<p id="GFG_UP">
</p>
<button onclick = "Geeks();">
click here
</button>
<p id="GFG_DOWN">
</p>
<script>
var el_up = document.getElementById("GFG_UP");
el_up.innerHTML = "JQuery.when() method";
var def = .Deferred();
function Geeks() {
.when(def).done(function (x) {
$('#GFG_DOWN').append('when() method is executed.')
});
def.resolve();
}
</script>
</body>
</html>
输出: