Javascript jqueryajax赢得';t将数据存储在变量中
以下代码:Javascript jqueryajax赢得';t将数据存储在变量中,javascript,jquery,ajax,global-variables,Javascript,Jquery,Ajax,Global Variables,以下代码: jQuery.extend({ getAnalytics: function() { var result = null; $.ajax({ type: 'POST', dataType: 'json', url: '/master/analytics/reports', success: function(data) {
jQuery.extend({
getAnalytics: function() {
var result = null;
$.ajax({
type: 'POST',
dataType: 'json',
url: '/master/analytics/reports',
success: function(data) {
result = data;
console.log(result);
}
});
console.log(result);
return result;
}
});
var results = $.getAnalytics();
console.log(results);
在控制台中显示:
{20181002: 0, 20181003: 0, 20181004: "2", 20181005: "9", 20181006: 0, 20181007: 0, 20181008: "2", 20181009: "3", 20181010: "1"}
null
null
我无法找出我在请求中做错了什么,让
result
和results
返回空值,即使success的result
内部有一个json字符串。我不理解这里的变量。我不尊重AJAX调用的异步性质。它是以名字命名的
我通过以下操作修复了它
success: function(data) {
result = data;
functionToPerform();
}
function functionToPerform() {
// code that depends on the data sent back from the Ajax request
// fire this only after a successful AJAX request
}
这与JavaScript的同步特性有很大关系。我建议你看看:非常感谢。这就是我所需要的。