一个页面多个jquery ajax执行顺序?

发布于 2022-09-12 22:07:13 字数 405 浏览 39 评论 0

我用的jquery1.10.2
一个页面中有多个ajax请求

function f1() {
    //一大段代码
    
    //ajax请求
    doajax1();
}

function f2() {
    //一大段代码
    
    //ajax请求
    doajax2();
}

function f3() {
    //一大段代码
    
    //ajax请求
    doajax3();
}

.
.
.

如何按照f1() f2() f3() ...顺序执行?
f1()执行完之后再f2() ...

排除async: false这个办法
排除success: function () {f2();}这个办法
排除后端将多个ajax请求合成一个的办法

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

黑寡妇 2022-09-19 22:07:13

promise...then...,generator

以为你会在 2022-09-19 22:07:13

例子

    function f1() {
        var d = $.Deferred();
        setTimeout(function() {
            console.log('111');
            d.resolve();
        }, 4000);
        return d.promise();
    }
    
    function f2() {
        console.log('f2');
    }
    
    f1().then(function(){f2();});
云仙小弟 2022-09-19 22:07:13

使用jquery 的 $.when()方法
// ajax 其他参数

var options = {type: 'GET', data: {name: '**'}};
$.when(
    $.ajax(url1, options),
    $.ajax(url2, options),
    $.ajax(url3, options),
).done(function(return1, return2, return3){
    console.log(return1);// url1 的返回
    console.log(return2);// url2 的返回
    console.log(return3);// url3 的返回
}).fail(function(obj, statusString, errorMsg){
    console.log(obj);// obj
    console.log(statusString);// error
    console.log(errorMsg);// Not Found
});
小矜持 2022-09-19 22:07:13

搞个队列:如

var Queue = (() => {
    var tasks = [];
    function run() {
        if(tasks.length) tasks.shift().call(null, run);
    }
    
    function add(fn) {
        tasks.push(fn);
    }

    return {
        add,
        run,
    }
})();

Queue.add(task1)
Queue.add(task2)

function task1(next) {
    // ...dosomething
    next()
}

function task2(next) {
    // ...dosomething
    next();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文