我现在遇到这样的而一个问题,先看下代码: var name; $.ajax({ url:"", success:function(){ //赋值; }); 但是ajax是异步的,也就是如果这时name赋值是暂时参与赋值的,如果用return来做的话,那就和同步没有区别了 如果不想把过多的逻辑写到回调之中,大家有没有好的办法,希望大牛们指导一下。
9 回复
var getName = function(cb){
$.ajax({
url : '',
success : function(data){
cb(data.name);
}
});
}
getName(function(name){
var _name = name;
});
这样呢?
@ringtail 回调函数也可以有参数传进去。我一般用 bind(context)给回调函数一个 scope。传入的参数(在 context 这个对象里)在回调函数里用 this 来取得。另一个办法是用成员函数,也是用 this 来取得参数。最后一个笨点的办法是用全局变量。