use*_*882 2 javascript ajax jquery scope function
我正在使用jQuery,我有以下代码:
var result = [];
if ( some_condition ) {
result = [...]
} else {
$.ajax({
url: some_url,
data: some_data,
dataType: 'json',
success: function(data) {
items = data
}
});
result = items
}
// Playing with the 'result' variable...
Run Code Online (Sandbox Code Playgroud)
上面的代码生成错误" items is not defined" some_condition是false什么时候(我认为这是因为变量范围不正确).
我想将result变量设置为AJAX响应数据,但我不知道如何解决问题.
注意:我正在尝试这样做,因为我想在语句之外使用result变量(即,在上面的代码中的语句之后).if ... elseif ... else
只需使ajax函数不异步
var result = [];
if ( some_condition ) {
result = [...]
} else {
$.ajax({
url: some_url,
data: some_data,
dataType: 'json',
async: false,
success: function(data) {
items = data
}
});
result = items
}
Run Code Online (Sandbox Code Playgroud)
做这个:
由于您将其称为异步,因此您应该在回调函数中分配它
var result = [];
if ( some_condition ) {
result = [...]
} else {
$.ajax({
url: some_url,
data: some_data,
dataType: 'json',
success: function(data) {
result = data;
validateResult(result);
}
});
}
Run Code Online (Sandbox Code Playgroud)
并为了您更好的理解。
您的结果数组是一个全局变量。
| 归档时间: |
|
| 查看次数: |
20585 次 |
| 最近记录: |