首页 > 关于jQuery的$.get()的作用域问题

关于jQuery的$.get()的作用域问题

var artm=new Array();
var dptm=new Array();
$.get("xxxxx",{bdate:"2016-06-07"},
    function (data, textStatus){
        for(i=0;i<data.length;i++){
            artm[i]=Number(data[i].arr_time);
            dptm[i]=artm[i]+Number(data[i].length);
            $('#time_line').append(data[i].chart);
            console.log(artm[i]);
        }
    });

console.log(artm[0]);


181的10是$.get()里输出的,186的undefined是console.log(artm[0]);输出的,那么$.get()里面运行的函数的变量不能调出来使用吗?


问题不在作用域,而在于下面这个概念

事件循环

你的.get操作是异步操作,186输出时artm确实还没内容呢,所以你取他的第0个元素,当然是undefined。 而181则是在get的异步回调里,拿到的就是处理完的值


var request = $.ajax("url");
request.then(function(data){
    // 所有要操作data的代码写这
});
【热门文章】
【热门文章】