Possible Duplicate:
How to return the response from an AJAX call from a function?
我有一个函数可以从在线文件中读取数值数据。虽然文件被正确检索(通过警报显示的值证明),但当我尝试将其设置为输出然后返回输出时,我得到了未定义的结果。
我尝试浏览范围界定教程,但无济于事。我做错了什么?
function readFileFromWeb() {
var output;
jQuery.get('http://domain.com', function(data) {
alert(data);
output = data;
});
return output;
}
最佳答案
这是应该如何通过回调函数完成的。
function readFileFromWeb(callback) {
jQuery.get('http://domain.com', function(data) {
callback && callback(data);
});
}
// ...
readFileFromWeb(function (data) {
alert(data);
});
这是因为 jQuery.get
是一个异步函数,即它在执行时不会阻塞,因此会立即返回。这实际上就是 jQuery.get
函数需要回调函数的原因,以便在 AJAX 查询返回后它会触发回调函数。
因此,在实现您自己的 readFileFromWeb
函数时,您需要使用相同的回调模式。
关于Javascript 变量不保留值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381814/