我不知道';我不理解这个javascript函数是如何执行的
当我运行以下代码时,警报弹出窗口显示undefined(未定义)。我认为它会返回true或false。请解释一下checkLoginStatus()函数是如何执行的。谢谢我不知道';我不理解这个javascript函数是如何执行的,javascript,jquery,Javascript,Jquery,当我运行以下代码时,警报弹出窗口显示undefined(未定义)。我认为它会返回true或false。请解释一下checkLoginStatus()函数是如何执行的。谢谢 function checkLoginStatus() { $.get("func.php", {op:'login_status', r:Math.random()}, function(data) { if (data == "Yes") { showSalesView(); ret
function checkLoginStatus() {
$.get("func.php", {op:'login_status', r:Math.random()}, function(data) {
if (data == "Yes") {
showSalesView();
return true;
} else {
loginView();
return false;
}
});
}
有两件事不对 第一,您正在函数中执行异步调用,因此当调用返回时,checkLoginStatus已经返回。基本上是这样的:
function checkLoginStatus() {
$.get("func.php", {
op: 'login_status',
r: Math.random()
}, function(data) {
if (data == "Yes") {
showSalesView();
return true;
} else {
loginView();
return false;
}
});
// return undefined
}
其次,您将在另一个函数的回调中返回,因此该返回将影响对$的回调的返回值。get
您想使用回调。所以
function checkLoginStatus(callback) {
$.get("func.php", {
op: 'login_status',
r: Math.random()
}, function(data) {
if (data == "Yes") {
showSalesView();
callback(true);
} else {
loginView();
callback(false);
}
});
}
然后
checkLoginStatus(function(result) {
alert(result);
});
有两件事不对 第一,您正在函数中执行异步调用,因此当调用返回时,checkLoginStatus已经返回。基本上是这样的:
function checkLoginStatus() {
$.get("func.php", {
op: 'login_status',
r: Math.random()
}, function(data) {
if (data == "Yes") {
showSalesView();
return true;
} else {
loginView();
return false;
}
});
// return undefined
}
其次,您将在另一个函数的回调中返回,因此该返回将影响对$的回调的返回值。get
您想使用回调。所以
function checkLoginStatus(callback) {
$.get("func.php", {
op: 'login_status',
r: Math.random()
}, function(data) {
if (data == "Yes") {
showSalesView();
callback(true);
} else {
loginView();
callback(false);
}
});
}
然后
checkLoginStatus(function(result) {
alert(result);
});
AJAX调用是异步的,因此在响应到达时将执行指定为回调的函数。代码不会等待响应退出
checkLoginStatus
功能
您可以使用回调方法显示结果:
function checkLoginStatus(callback) {
$.get("func.php", {op:'login_status', r:Math.random()}, function(data) {
if (data == "Yes") {
showSalesView();
callback(true);
} else {
loginView();
callback(false);
}
});
}
checkLoginStatus(function(status){ alert(status); });
AJAX调用是异步的,因此在响应到达时将执行指定为回调的函数。代码不会等待响应退出
checkLoginStatus
功能
您可以使用回调方法显示结果:
function checkLoginStatus(callback) {
$.get("func.php", {op:'login_status', r:Math.random()}, function(data) {
if (data == "Yes") {
showSalesView();
callback(true);
} else {
loginView();
callback(false);
}
});
}
checkLoginStatus(function(status){ alert(status); });
返回的bool由
$返回。get
函数回调,而不是checkLoginStatus
function checkLoginStatus() {
$.get("func.php", {op:'login_status', r:Math.random()},
// Start Callback Function
function(data) {
if (data == "Yes") {
showSalesView();
return true;
} else {
loginView();
return false;
}
// End Callback Function
});
}
返回的bool由
$返回。get
函数回调,而不是checkLoginStatus
function checkLoginStatus() {
$.get("func.php", {op:'login_status', r:Math.random()},
// Start Callback Function
function(data) {
if (data == "Yes") {
showSalesView();
return true;
} else {
loginView();
return false;
}
// End Callback Function
});
}
您看到的是来自.get()函数的未定义(void)返回,
请注意,.get函数调用包含另一个函数作为第三个参数(第一个是url,第二个是anon对象),它是.get函数结果的“回调”,稍后从服务器返回结果时会调用它。您看到的是.get()返回的未定义(void)参数作用
请注意,.get函数调用包含另一个函数作为第三个参数(第一个是url,第二个是anon对象),即.get函数结果的“回调”,当结果从服务器返回时,将调用此函数。Programming 101 Callbacks:Programming 101 Callbacks:我几乎在嘲笑自己,需要快速完成应用程序。谢谢你的时间。我几乎在嘲笑我自己,需要快速完成应用程序。谢谢你抽出时间。