var doCheck = function() {
var data;
$.ajax({
url: 'check.php',
data: 'ch=check',
success: function(resp) {
data = resp;
}
});
console.log(data);
return data == 1;
};
上面的代码,无论数据如何,都只返回一个0
or a 1
。在成功回调的范围内,这是正确的。论点resp
值为0
or 1
根据input
.
但是,每当我尝试访问私有变量(不应受范围影响)时,什么也没有发生;什么时候console.log(data);
被称为所有写入console
is undefined
.
该函数没有父函数,因此不必担心其他类型的作用域干扰。
Ajax 是异步的。这就是为什么你必须用回调来组织你的逻辑:
var doCheck = function(callback) {
var data;
$.ajax({
url: 'check.php',
data: 'ch=check',
success: function(resp) {
callback(data == 1);
}
});
};
doCheck(function(result) {
// result is true or false
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)