栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

jQuery Deferred-获取链式Ajax调用的结果

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jQuery Deferred-获取链式Ajax调用的结果

如果您知道有多少个Ajax调用,只需使用$ .when()

$.when(doAjax('a'),doAjax('b'),doAjax('c'),doAjax('d')).then(function(result_a,result_b,result_c,result_d) {    console.log("Result from query a: " + result_a);    console.log("Result from query b: " + result_b);    console.log("Result from query c: " + result_c);    console.log("Result from query d: " + result_d);});

如果您不知道将有多少个ajax调用,则可以自己管理延迟的对象。

// altered version of doAjax()function doAjax(number,dObject) {    var xdata = {json: $.toJSON({name: number}), delay: 1};    $.ajax({        url:"/echo/json/",        data:xdata,        type:"POST",        success: function(data) { results.push(data); dObject.resolve();        }    });}// array that will contain all deferred objectsvar deferreds = [];// array that will contain all resultsvar results = [];// make the ajax callsfor (var i = 0; i < someNumber; i++) {    var dObject = new $.Deferred();    deferreds.push(dObject);    doAjax(i,dObject);}// check if all ajax calls have finished$.when.apply($, deferreds).done(function() {    console.log(results);});

魔术带有函数apply(),该函数为函数的参数组成一个数组。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号