返回AJAX回调返回

DrX*_*eng 8 javascript ajax

例如,我有一个功能:

var f1 = function(arg) {
    var a;
    $.ajax({
        ...
        success: function(data) {
            a = f2(data);
            //return a;
        }
    });
    //return a;
}

var f3 = function() {
    a = f1(arg);
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能返回aAJAX后得到dataf1

Ada*_*kis 16

您无法返回ajax请求的结果,因为请求是异步的(并且同步ajax请求是一个可怕的想法).

你最好的选择是将你自己的回调传递给f1

var f1 = function(arg, callback) {
    $.ajax({
        success: function(data) {
            callback(data);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

然后你会这样打电话f1:

f1(arg, function(data) { 
           var a = f2(data);
           alert(a);
        }
 );
Run Code Online (Sandbox Code Playgroud)

  • f2代表什么?也许回调? (2认同)