微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何在内部Ajax调用的函数中获取返回值–JQuery

这对你们很少人来说听起来很容易,但我无法弄清楚为什么我无法获得返回值,即使在chceking很多帖子之后:(

function getMessageCount() {
                    var count;
                    $.ajax({
                        type: "POST",
                        url: "http://localhost:43390" + "/services/discussionWidgetService.asmx/GetMessageCount",
                        dataType: "json",
                        contentType: "application/json; charset=utf-8",
                        success: function (data) {                            
                            count = data.d;
                        } //success
                    });
                    return count;
                }

现在如果我调用var count = getMessageCount();
它让我没有瑕疵:(
而在方法内部计数正确,即服务工作正常.

解决方法:

那是因为$.ajax()调用是异步的.

如果您将代码编辑为:

function getMessageCount(callback) {
    var count;
    $.ajax({
       type: "POST",
       url: "http://localhost:43390" + "/services/discussionWidgetService.asmx/GetMessageCount",
       dataType: "json",
       contentType: "application/json; charset=utf-8",
       success: function (data) {                            
         count = data.d;

         if(typeof callback === "function") callback(count);
      } //success
   });
}

然后当你打电话给它:

getMessageCount(function(count){
  console.log(count);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐