javascript - 完成后无法将 Ajax 调用中的元素推送到全局范围的数组
问题描述
我的函数中有一个全局声明的数组,我想将元素从 AJAX 调用推送到该数组。
AJAX 调用:
function getDatesFromAJAX() {
return $.ajax({
type: "GET",
url: "http://localhost:8080/api/dates/1",
success: function(dates) {},
error: function(xhr) {
alert("Request status: " + xhr.status + " Status text: " + xhr.statusText + " " + xhr.responseText);
}
});
}
var dateArray = new Array();
// populate dateArray
$.when(getDatesFromAJAX().done(function(dates){
$.each(dates, function (index, date) {
dateArray.push(date);
});
console.log("DATE ARRAY INSIDE FUNCTION: ", dateArray);
console.log("DATE ARRAY LENGTH INSIDE FUNCTION: ", dateArray.length); // 2 (expected)
}));
console.log("DATE ARRAY OUTSIDE FUNCTION: ", dateArray);
console.log("DATE ARRAY LENGTH OUTSIDE FUNCTION: ", dateArray.length); // 0
虽然函数外部的 dateArray 可能包含一些东西,但它没有长度,所以我不能迭代它。我认为由于 AJAX 调用的性质,它可能无法正确填充,考虑到行 'console.log("DATE ARRAY OUTSIDE FUNCTION:", dateArray)'在 DATE ARRAY INSIDE FUNCTION 行之前打印。
解决方案
推荐阅读
- https - 如何在 SAPUI5 上监听服务器发送的事件
- python - 创建一个时间对象?
- f# - 无法在 FSharp 中加载 Deedle
- laravel - Laravel - 如何在刀片视图中访问嵌套的子数据?
- javascript - 如何首先将活动选项卡拉到该位置并在活动选项卡之后推动另一个?
- python - 1D 明智/元素明智地添加 2D numpy 数组
- php - 无法在 PHP 7.3.9 中启用 Curl
- python - 将先验信念添加到神经网络中
- python - 如何从 Outlook 中将 xls 附件另存为 xlsx - pywin32
- c# - 即使数据库中的某些数据类型不同,有没有办法将 dataRow 保存为字符串