Javascript函数没有正确返回
我正在制作一个基于Laravel的CMS评论系统 我目前正在处理的逻辑是,当一条评论被删除时,我运行一个ajax调用来检查有多少条评论,如果没有更多的评论,那么我将显示一条消息“no comments” 除了最后一部分,我什么都做得很好 我的函数总是返回未定义 职能:Javascript函数没有正确返回,javascript,jquery,ajax,json,function,Javascript,Jquery,Ajax,Json,Function,我正在制作一个基于Laravel的CMS评论系统 我目前正在处理的逻辑是,当一条评论被删除时,我运行一个ajax调用来检查有多少条评论,如果没有更多的评论,那么我将显示一条消息“no comments” 除了最后一部分,我什么都做得很好 我的函数总是返回未定义 职能: function checkCommentCount($id){ var rootAsset = $('.rootAsset').html(); $.ajax({ url: rootAsset+'postcomme
function checkCommentCount($id){
var rootAsset = $('.rootAsset').html();
$.ajax({
url: rootAsset+'postcommentcount/'+$id,
type: 'post',
cache: false,
dataType: 'json',
data: $(this).serialize(),
success: function(data) {
if (data.success) {
//return +data.count;
console.log(data.count);
}
},
error: function(xhr, textStatus, thrownError) {
alert('Something went to wrong.Please Try again later...');
}
});
}
这将正确记录通过JSON返回的count变量。因此PHP方面是好的
但是,如果尝试在其他位置运行该函数:
console.log(checkCommentCount(1648));
它总是返回未定义的。我需要让函数返回一个数值,这样我才能进行检查
控制台日志在函数中工作正常,但如果我将其更改为:
return data.count;
然后函数将返回未定义的
有什么想法吗?您的ajax调用是异步的。这意味着您的JavaScript函数不返回任何内容,稍后当ajax调用完成时,将调用成功/错误回调。欢迎使用异步JavaScript,请稍候,让我查找复制。它将返回未定义的内容,因为ajax请求将始终延迟,使用
q
库来处理它,您可以使调用同步…这通常是个坏主意。除非您从函数返回全部承诺,否则您将不会返回任何内容-您将使用回调。