例如我有一个功能:
var f1 = function(arg) { var a; $.ajax({ ... success: function(data) { a = f2(data); //return a; } }); //return a; } var f3 = function() { a = f1(arg); }
我怎样才能返回aAJAX后得到data的f1?
a
data
f1
因为请求是异步的,所以您无法返回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); } );