Javascript函数无法正确返回

时间:2015-01-28 12:13:14

标签: javascript jquery ajax json function

我正在基于Laravel的CMS上建立评论系统。

我目前正在处理的逻辑是删除评论时,我运行ajax调用以检查有多少条评论,如果没有其他评论,那么我会显示一条消息'没有评论&#39 ;

我有一切正常,但最后一部分。

我的函数总是返回undefined。

功能:

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));

它总是返回undefined。我需要让函数返回一个数字值,以便我可以进行检查。

控制台日志在该函数中工作正常,但如果我将其更改为:

return data.count;

然后该函数将返回undefined ...

有什么想法吗?

1 个答案:

答案 0 :(得分:-2)

您的ajax调用是异步的。这意味着您的JavaScript函数不返回任何内容,稍后当ajax调用完成时,将调用您的成功/错误回调。