在Web開發(fā)中,JavaScript一直是必不可少的一部分。而jQuery作為著名的JavaScript庫,更是成為了許多網(wǎng)站的標(biāo)配。
$(document).ready(function(){ // jQuery代碼 })
在jQuery中,有一個(gè)非常強(qiáng)大的功能 —— Deferred對(duì)象。Deferred對(duì)象可以用來處理異步操作,例如Ajax請(qǐng)求,定時(shí)器等。當(dāng)這些異步操作完成后,可以觸發(fā)相關(guān)的回調(diào)函數(shù),完成后續(xù)操作。
$.ajax({ url: '/api/example', type: 'get', success: function(data){ console.log(data); } })
然而,當(dāng)我們需要同時(shí)處理多個(gè)異步操作時(shí),就需要使用到另外一個(gè)非常有用的方法 - $.when()和.done()。$.when()可以將多個(gè)Deferred對(duì)象整合在一起,而.done()方法則會(huì)在所有的Deferred對(duì)象都完成后,執(zhí)行回調(diào)函數(shù),并按完成的順序返回所有對(duì)象的結(jié)果。
$.when($.ajax('/api/1'), $.ajax('/api/2')).done(function(result1, result2){ console.log(result1[0], result2[0]); })
需要注意的是,當(dāng)$.when()的參數(shù)中包含多個(gè)項(xiàng)時(shí),結(jié)果的順序與參數(shù)順序保持一致。當(dāng)其中某個(gè)異步操作失敗時(shí),$.when()方法會(huì)直接跳過后續(xù)的處理,并直接執(zhí)行失敗回調(diào)。
下一篇字符占位css