一切都做完之后再做点什么

do something after everything is done -

本文关键字:什么 之后      更新时间:2023-09-26

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

文件:

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();
    });
}

修改函数以返回AJAX对象:

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

现在你知道了:

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

这比将two()直接放入回调中要简洁一些。

承诺是您的目的的最佳选择

jQuery延迟和承诺- .then() vs .done()

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