我在函数内部使用jQuery执行GET请求,并尝试使用结果设置在该函数中先前声明的变量。然而,它出现了未定义。我在这里错过了这个概念吗?我怎样才能做出类似这样的工作?感谢。
function doSomething1() {
var x;
$.get( window.location.href, { q: 'stuff', q2: $('input').val() }, function(data){
// value shows up
console.log(data);
x = data;
});
return x;
}
function doSomething2() {
// comes up as undefined.
console.log(doSomething1());
}
doSomething2();
答案 0 :(得分:1)
这是$ .get()请求的异步效果的错误。在获得有机会做任何事情之前,您将返回x
。围绕异步函数需要一段时间。
事件的顺序如下:
doSomething2()
来电doSomething1()
doSomething1()
定义x
,没有值开始GET请求,并返回undefined
。doSomething2()
记录返回的x
值