我尝试进行console.log记录时得到未定义

var farr = [];
$.ajax({
    url: "https://whispering-cliffs-33347.herokuapp.com/employees",
    type: "GET",
    contentType: "application/jsonp"
}).done(function(employees) {
    for(let i in employees){
        farr.push(employees[i]);
    }
})
console.log(farr[8]);


有任何想法吗?

最佳答案

console.log(farr[8]);甚至会在响应可用之前执行。因此,首先在done中推送本地数组中的所有元素,然后在下一个done中记录该值

var farr = [];
    $.ajax({
        url: "https://whispering-cliffs-33347.herokuapp.com/employees",
        type: "GET",
        contentType: "application/jsonp"
    }).done(function(employees) {
        employees.forEach(function(item){
            farr.push(item)
        })
    }).done(function(elem){
        console.log(farr[8]);
    })

10-06 07:49