在另一个函数中从 Ajax 函数访问数据



我的 MWE 数据.js如下所示:

var data = [];
function initdata(){
    $.ajax({
        ...
        success: function(data){
            data.push("test");
        },
        ...
    });
}
$(document).ready(function(){
    initdata();
    console.log(data.length);
    console.log(data[0]);
}

但是控制台说,data.length0data[0]undefined 。如何在另一个函数中访问来自 ajax 函数的数据?

$.ajax()是异步的,因此当它完成请求并运行时data.push('test')您的console.log(data.length)已经完成。
解决此问题的一种方法是使用回调:

function initdata(callback) {
    $.ajax({
        ...
        success: function(result) { // or just success: callback,
            callback(result);
        }
    });
}
$(document).ready(function() {
    initdata(function(data) {
        console.log(data.length);
        console.log(data[0]);
    });
}

相关内容

  • 没有找到相关文章

最新更新