小编典典

返回AJAX回调返回

ajax

例如我有一个功能:

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

var f3 = function() {
    a = f1(arg);
}

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


阅读 229

收藏
2020-07-26

共1个答案

小编典典

因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。

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

var f1 = function(arg, callback) {
    $.ajax({
        success: function(data) {
            callback(data);
        }
    });
}

然后,您将f1像这样致电:

f1(arg, function(data) { 
           var a = f2(data);
           alert(a);
        }
 );
2020-07-26