在Jquery中的Ajax中完成代码后执行下一行

4 ajax jquery

需要帮忙!

我正在函数内执行ajax调用.Ajax调用的结果是函数的返回值.

代码如下:

function tabstrip()
 {       
        $.ajax({
                  type: "POST",
                  url: "/WebService/MessageUnratedCount.asmx/GetMessageUnratedCount",
                  data: "{}",
                  contentType: "application/json; charset=utf-8",
                  dataType: "json",
                  success: function(msg) {
                    nUnratedCount=msg.d;               

                  }
              });
           return nUnratedCount;                                       
 }  
Run Code Online (Sandbox Code Playgroud)

在从Web服务的ajax调用获得结果后,应返回nUnratedCount值.但是它会在执行ajax调用之前返回.你能帮忙吗?

red*_*are 8

请记住,默认情况下,您的ajax请求不是同步调用,因此函数将立即返回而不等待响应.我强烈建议的一个选择是使用asynch:false设置.

最好的选择是重构代码结构并传入一个成功调用的回调函数

例如

   //calling code
   tabstrip( yourCallbackFunction )

    function tabstrip(callbackFn)
     {       
            $.ajax({
                      type: "POST",
                      url: "/WebService/MessageUnratedCount.asmx/GetMessageUnratedCount",
                      data: "{}",
                      contentType: "application/json; charset=utf-8",
                      dataType: "json",
                      success: callbackFn
                  });                                     
     }

    function yourCallbackFunction (data){
       //do something
    }
Run Code Online (Sandbox Code Playgroud)