when ajax,jQuery.when()

jQuery.when() 方法

实例

一个参数传递给 $.when() 被受理,执行回调函数

$(function(){$.when({testing:123}).done(function(x){alert(x.testing);}/*alerts "123"*/);})

尝试一下 »

定义和用法

$.when() 函数提供一种方法来执行一个或多个对象的回调函数。

提示:如果向 jQuery.when 传入一个延迟对象,那么会返回它的 Promise 对象(延迟方法的一个子集)。

可以继续绑定 Promise 对象的其它方法,例如, defered.then 。当延迟对象已经被受理(resolved)

或被拒绝(rejected)(通常是由创建延迟对象的最初代码执行的),那么就会调用相应的回调函数。

语法

$.when( deferreds )

参数

描述

deferreds

Deferred类型 一个或多个延迟对象,或者普通的JavaScript对象

e93aaee1ab6f376efed41c3f188b729e.png

更多实例

如果你不传递任何参数,jQuery.when()将返回一个resolved(受理)状态的 promise 对象。

实例

不传递任何参数,执行回调函数

[mycode3 type="javascript"]

$(function () {

$.when().then(function( x ) {

alert( "I fired immediately" );

});

})

[/mycode3]

尝试一下 »

在多个延迟对象传递给jQuery.when() 的情况下,该方法返回一个新的"宿主"延迟对象,当所有的延迟对

象被受理(resolve)时,该方法才会受理它的宿主延迟对象。当其中有一个延迟对象被拒绝(rejected)时,

该方法就会拒绝它的宿主延迟对象。当宿主对象被受理时,doneCallbacks(受理回调)将被执行。

实例

传入多个延迟对象

[mycode3 type="javascript"]

$(function () {

var d1 = $.Deferred();

var d2 = $.Deferred();

$.when( d1, d2 ).done(function ( v1, v2 ) {

alert( v1 ); // "Fish"

alert( v2 ); // "Pizza"

});

d1.resolve( "Fish" );

d2.resolve( "Pizza" );

})

[/mycode3]

尝试一下 »

如果没有值传递给延迟对象的受理(resolved)事件,那么相应的doneCallback参数

将是undefined。 如果传递给延迟对象的受理(resolved)事件为单个的值, 相应的参数

将保留那个值。 在传递给延迟对象的解决(resolved)事件为为多个值的情况下, 相应的

参数将是这些值组成的数组。

实例

传入多个不同类型的延迟对象

[mycode3 type="javascript"]

$(function () {

var d1 = $.Deferred();

var d2 = $.Deferred();

var d3 = $.Deferred();

$.when( d1, d2, d3 ).done(function ( v1, v2, v3 ) {

alert( v1 ); // v1 is undefined

alert( v2 ); // v2 is "abc"

alert( v3 ); // v3 is an array [ 1, 2, 3, 4, 5 ]

});

d1.resolve();

d2.resolve( "abc" );

d3.resolve( 1, 2, 3, 4, 5 );

})

[/mycode3]

尝试一下 »

在多个延迟的情况下,如果延迟对象之一被拒绝(rejected),jQuery.when()触发立即

调用 "宿主" 延迟对象的 failCallbacks 回调函数。

实例

多个延迟对象之一被拒绝时调用failCallbacks 回调函数

[mycode3 type="javascript"]

$(function () {

$.when($.ajax("/page1.php"), $.ajax("/page2.php")).then(function(data, textStatus, jqXHR){

alert(jqXHR.status); }, function(obj){

alert(obj.statusText);

});

})

[/mycode3]

尝试一下 »

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值