Javascript jquery无法读取属性';完成';未定义的-避免这种情况
我有一个返回结果(或不返回)的函数。问题是,当它不返回我在控制台中得到的任何值时,消息 无法读取未定义的属性“done” 这是真的,我确实理解这个问题。此外,这个错误不会使我的代码停止工作,但是我想知道是否有可能避免这个错误 ajax中的功能是:Javascript jquery无法读取属性';完成';未定义的-避免这种情况,javascript,jquery,undefined,Javascript,Jquery,Undefined,我有一个返回结果(或不返回)的函数。问题是,当它不返回我在控制台中得到的任何值时,消息 无法读取未定义的属性“done” 这是真的,我确实理解这个问题。此外,这个错误不会使我的代码停止工作,但是我想知道是否有可能避免这个错误 ajax中的功能是: function getDelivery(){ var items = new Array(); $("#tab-delivery tr").each(function(){ items.push({"id" : $(
function getDelivery(){
var items = new Array();
$("#tab-delivery tr").each(function(){
items.push({"id" : $(this).find('.form-control').attr('id'), "id_option" : $(this).find('.form-control').val()});
});
if(items.length > 0){
return $.ajax({
url: 'response.php?type=getDelivery',
type: 'POST',
data: {content: items}
});
}
}
我用以下方式来称呼它:
getDelivery().done(function(data){ // the problem is here
if(data == false){
return;
}
});
那么,有没有办法避免这个错误呢?我尝试了以下几点,但没有成功:
if(items.length > 0){
return $.ajax({
url: 'response.php?type=getDelivery',
type: 'POST',
data: {content: items}
});
}else{
return false;
}
我得到了一个错误:
未捕获类型错误:未定义不是函数
您可以只返回一个延迟,这样
done()
回调就不会产生错误,您可以选择是否解决它
if(items.length > 0){
return $.ajax({
url: 'response.php?type=getDelivery',
type: 'POST',
data: {content: items}
});
}else{
var def = new $.Deferred();
def.resolve(false);
return def;
}
完美。我将在8分钟内接受答案。谢谢。
返回$.Deferred().resolve(false)代码>也可以工作,并且稍微不那么冗长。