可能重复:
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
的回复陈述?
答案 0 :(得分:6)
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);
});
}
您可以使用$.ajax()
并将async
属性设置为false
。
警告:此方法不推荐!它会阻止整个UI,所有其他JavaScript和计时器,直到请求完成!