javascript - 在 JavaScript 中从变量传递数据

标签 javascript jquery

我创建了一个小型 JavaScript 应用程序,其中包含以下调用函数来检索 JSON 数据的函数:

var months = function getMonths(){

$.getJSON("app/data/Cars/12Months", function (some_data) {
    if (some_data == null) {
        return false;
    }

    var months_data = new Array();
    var value_data = new Array();

    $.each(some_data, function(index, value) {
        months_data.push(index);
        value_data.push(value);
   });

    return[months_data,value_data];
});

然后我在同一文件中创建了另一个函数,该函数在加载特定页面时执行某些操作。在此函数中,变量“months”被传递给变量“result”。

$(document).on('pageshow', '#chartCar', function(){

$(document).ready(function() {


    var result = months;
    var date = result[0];
    var values = result[1];

//more code here...

});
}

问题是,基于调试器,getMonths() 函数工作正常并产生预期的输出,但第二个函数中的“result”变量无法获取变量“months”传递给它的值'.你知道如何解决这个问题吗?

最佳答案

问题是您的 $.getJSON() 函数是异步的,因此您的数据会在您读取数据之后加载。有两种解决方法:
1. 用 $.ajax 替换你的 $.getJSON 并设置 async: false;
2. 将您的代码放入 $.getJSON 回调中:

var months = function getMonths(){

$.getJSON("app/data/Cars/12Months", function (some_data) {
    if (some_data == null) {
        return false;
    }

var months_data = new Array();
var value_data = new Array();

$.each(some_data, function(index, value) {
    months_data.push(index);
    value_data.push(value);


}); 

var date = months_data;
var values = value_data;
//more code here..
    })
    }

关于javascript - 在 JavaScript 中从变量传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15244092/

相关文章:

javascript - 如何使用 JavaScript 检查 html 元标记是否存在?

javascript - Vue 的多个模态组件

javascript - 如何使用 JavaScript 在单击时更改按钮文本?

jquery - 如何在div中打洞?

javascript - 线路夹紧和松开,Link的onclick事件

javascript - 通过 jQuery 对随机字段项进行排序

特定时间和日期的Javascript倒计时

jquery - 悬停时出现多个图像

javascript - top = $this.css ("top") 返回对象与元素值

javascript - 通过加载函数发送变量