[英]Promote callback onSuccess return value to the Caller Function return value
[英]How can i return a value from a callback function to the caller?
我怎样才能使这个小功能“imageExists”返回ajax请求成功与否?
function imageExists(path){
$.ajax({
url: path,
type: 'HEAD',
error:
function(){
return false;
},
success:
function(){
return true;
}
});
}
您将在success
函数或error
函数中返回AJAX调用的结果,因此应从该点调用接下来应调用的任何函数。
因为AJAX请求是异步的(我建议不要让它成为阻塞同步调用),所以你发出请求但不知道它什么时候会返回; 当它返回时它会打电话给你,所以你只需要提供一些东西来打电话。
function imageExists(path){
$.ajax({
url: path,
type: 'HEAD',
error:
function(){
iveReturned(false);
},
success:
function(){
iveReturned(true);
}
});
}
function iveReturned(result) {
// code here to do something following AJAX response.
}
我相信你必须使用同步模式并使用一个单独的变量来存储返回值。
function imageExists(path){
var isSuccess;
$.ajax({
url: path,
type: 'HEAD',
async: false,
error:
function(){
isSuccess = false;
return false;
},
success:
function(){
isSuccess = true;
return true;
}
});
return isSuccess;
}
创建一个var以在全局级别保存响应,然后将async设置为false。 然后,您需要在成功或错误函数中设置该var。
http://api.jquery.com/jQuery.ajax/
function imageExists(path){
myVar = null;
$.ajax({
url: path,
type: 'HEAD',
error:
function(){
myVar = false;
},
success:
function(){
myVar = true;
},
async: false
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.