我有以下 JavaScript(和 jQuery)代码:
function checkEmail(email) {
if (email.length) {
$.getJSON('ajax/validate', {email: email}, function(data){
if (data == false) {
// stuff
}
return data;
})
}
}
我希望匿名函数返回数据
给父函数checkEmail()
。我试着做这样的事情:
function checkEmail(email) {
if (email.length) {
var ret = null;
$.getJSON('ajax/validate', {email: email}, function(data){
if (data == false) {
// stuff
}
ret = data;
})
return ret;
}
}
当然这不会起作用,因为 $.getJSON()
调用是异步的,因此它会在 GET 请求完成之前返回 ret
。
有什么想法吗?
谢谢!
最佳答案
通常,处理此类问题的最佳方法是使用某种形式的回调函数。实际上,它确实是唯一可行的解决方案——唯一的其他选择是编写您自己的浏览器扩展程序,这有点多(除非您真的喜欢用头撞墙)。这些版 block 上其实有很多类似的问题:你可以试着搜索一些,很多都很好。
修改代码:
function checkEmail(email) {
/*
original parts of the function here!
*/
if (email.length) {
$.getJSON('ajax/validate', {email: email}, function(data){
if (data == false) {
// stuff
}
checkEmailResponse( data );
})
}
}
function checkEmailResponse( data )
{
// do something with the data.
}
关于javascript - 如何将 AJAX 检索的值返回给 JavaScript 中当前函数的父函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1461895/