按照顺序执行异步ajax的回调函数
生活随笔
收集整理的這篇文章主要介紹了
按照顺序执行异步ajax的回调函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//按順序執(zhí)行多個(gè)ajax命令,因?yàn)閿?shù)量不定,所以采用遞歸
function send(action, arg2) {//將多個(gè)命令按順序封裝成數(shù)組對(duì)象,遞歸執(zhí)行//利用了deferred對(duì)象控制回調(diào)函數(shù)的特點(diǎn)$.when(send_action(action[0], arg2)).done(function () {//前一個(gè)ajax回調(diào)函數(shù)完畢之后判斷隊(duì)列長(zhǎng)度if (action.length > 1) {//隊(duì)列長(zhǎng)度大于1,則彈出第一個(gè),繼續(xù)遞歸執(zhí)行該隊(duì)列
action.shift();send(action, arg2);}}).fail(function (){//隊(duì)列中元素請(qǐng)求失敗后的邏輯//
//重試發(fā)送//send(action, arg2);//
//忽略錯(cuò)誤進(jìn)行下個(gè)//if (action.length > 1) {//隊(duì)列長(zhǎng)度大于1,則彈出第一個(gè),繼續(xù)遞歸執(zhí)行該隊(duì)列// action.shift();// send(action, arg2);//}
});
}//處理每個(gè)命令的ajax請(qǐng)求以及回調(diào)函數(shù)
function send_action(command, arg2) {var dtd = $.Deferred();//定義deferred對(duì)象
$.post("url",{command: command,arg2: arg2}).done(function (json) {json = $.parseJSON(json);//每次請(qǐng)求回調(diào)函數(shù)的處理邏輯//
//
//
//邏輯結(jié)束
dtd.resolve();}).fail(function (){//ajax請(qǐng)求失敗的邏輯
dtd.reject();});return dtd.promise();//返回Deferred對(duì)象的promise,防止在外部修改狀態(tài)
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/sherlock99/p/4726870.html
總結(jié)
以上是生活随笔為你收集整理的按照顺序执行异步ajax的回调函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果你的名字,当然【随机】给你
- 下一篇: 创建全文索引