永发信息网

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

答案:2  悬赏:60  手机版
解决时间 2021-03-25 07:41
  • 提问者网友:末路
  • 2021-03-24 17:04
JS,ajax执行滞后于其他的代码,ajax执行的结果没法用??
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-03-24 17:43
ajax的执行默认是异步的,所以如果后续有代码执行,不是写在ajax返回方法里面的话。执行结果是没发用的。
如果要用,要么把后续的代码写在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返回结果
全部回答
  • 1楼网友:西风乍起
  • 2021-03-24 19:00
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试下?追问还是没用啊,追答晕,你单词打错拉,大神。 async:false
不是aysnc
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯