jquery - 完成所有事情后做点什么 -

时间:2013-05-15 19:35:40

标签: javascript jquery jquery-deferred promise

我有一组按顺序运行的函数,但第一个函数有一个异步子函数。我希望第二个最高级别的函数只在异步函数完成后才能运行。知道我是怎么做到的吗?

档案A:

one();
two(); // I don't want this to run until after one()'s $.ajax success callback

function one() {
    doSomethingElse();
    $.ajax(url, {data: data}, function(){
        // do two();
    });
}

3 个答案:

答案 0 :(得分:1)

更改函数以返回AJAX对象:

function one() {
    doSomethingElse();

    return $.ajax({
        url: url,
        data: data
    });
}

现在你做了:

one().done(function() {
    two();
});

比将two()直接放入回调中更清晰。

答案 1 :(得分:0)

答案 2 :(得分:0)

function one() {
    doSomethingElse();
    $.ajax(url, {data: data}, function(){
        // do two();
        two();
    });
}

function two(){
alert("here");
}