JS,ajax执行滞后于其他的代码,ajax执行的结果没法用??

varresultData=-1;functioncountChildNodes(nodeId){$.ajax({type:'post',url:"countChildN... var resultData = -1;
function countChildNodes(nodeId){
$.ajax({
type: 'post',
url: "countChildNodes.tree",
aysnc:false,
data:{nodeId:nodeId},
success: function (data) {
alert("data = " + data );
resultData = data;
},
error: function (msg) {
alert(" 数据加载失败!" + msg);
}
});
alert(111); //这个比ajax先执行
return resultData; //这个也比ajax先执行
}

alert(111); //这个比ajax先执行
return resultData; //这个也比ajax先执行
所以不管怎么样,返回 跌过都是 -1 ,为什么会这样,怎么修改啊,我要返回接收的结果???
展开
 我来答
百度网友0df1ab6
2016-06-18 · TA获得超过147个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:107万
展开全部
  1. ajax的执行默认是异步的,所以如果后续有代码执行,不是写在ajax返回方法里面的话。执行结果是没发用的。

        1. 如果要用,要么把后续的代码写在ajax的返回方法里面,要么就将异步的改为同步。

          如下:

          1)默认为异步的

          $.ajax({
                      type: "GET",
                      url: "test.json",
                      data: {username:$("#username").val(), content:$("#content").val()},
                      dataType: "json",
                      success: function(data){
                                   ///此处可以可以执行后续代码,使用ajax返回结果
                      }
                  });

          2),同步

          var result ;
          $.ajax({
                      type: "GET",

                      async: false,
                      url: "test.json",
                      data: {username:$("#username").val(), content:$("#content").val()},
                      dataType: "json",
                      success: function(data){
                                

                          result =data
                      }
                  });

          ///测试执行后续代码可以用到ajax返回结果

vision_Yiu
2016-06-16 · TA获得超过349个赞
知道小有建树答主
回答量:251
采纳率:100%
帮助的人:75.5万
展开全部
function countChildNodes(nodeId){
        var resultData = -1;
$.ajax({
            type: 'post',
            url: "countChildNodes.tree",
            aysnc:false,//同步
            data:{nodeId:nodeId},
            success: function (data) {
             return data;
            },
            error: function (msg) {
                alert(" 数据加载失败!" + msg);
            }
 });
 return resultData;
}
更多追问追答
追问
这个没用的,我试过了,还是返回 -1
追答
aysnc:true试下?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式