推迟退货声明

时间:2011-11-20 14:29:43

标签: javascript jquery asynchronous return

  

可能重复:
  JavaScript asynchronous return value / assignment with jQuery

我需要一个带构造函数的图表原型,所以我写了这个:

function Chart(file) {
  var chart = undefined

  $.getJSON(file, function(data) {

    chart = {
      categories: data.keys
      series: [{
          name: 'first',
          data: data.first
        }, {
          name: 'second',
          data: data.second
      }]
    }

  });

  return chart
}

然后我意识到,由于JaavScript的同步性,它返回undefined。我该如何表达Chart的回复陈述?

1 个答案:

答案 0 :(得分:6)

1。)指定回调函数

function Chart(file, callback) {
  var chart = undefined

  $.getJSON(file, function(data) {

    chart = {
      categories: data.keys
      series: [{
          name: 'first',
          data: data.first
        }, {
          name: 'niewykopane',
          data: data.first
      }]
    }
    callback(chart);

  });
}

2.。)同步请求(不推荐!)

您可以使用$.ajax()并将async属性设置为false

警告:此方法不推荐!它会阻止整个UI,所有其他JavaScript和计时器,直到请求完成!