【发布时间】:2017-09-17 19:38:54
【问题描述】:
我有这个功能:
function get_non_authorized_bulk_edit_option_values() {
var modificable_column_names = get_write_user_values();
alert(modificable_column_names);
}
调用的是这个(我没有粘贴所有细节,例如xml变量内容或OnError函数):
function get_write_user_values() {
var request = $.ajax({
type: "POST",
async: false,
url: "model/_get_user_groups_info_pipe.php",
data: xml,
contentType: "text/xml; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnError
});
function OnSuccess(data,status,request) {
var modificable_column_names = [];
$.each(data.column_name, function(index, value) {
modificable_column_names.push(value);
});
alert(modificable_column_names);
return modificable_column_names;
}
}
当我提醒 modificable_column_names 数组时,它在 get_write_user_values() 函数中工作,但不在 get_non_authorized_bulk_edit_option_values() 函数中工作(我得到未定义)。 我尝试使用对象或字符串而不是表格,但我遇到了同样的问题。 为什么它不起作用?
PS:我在那里有一个同步调用,因为在继续之前我绝对需要这个函数的结果(我知道这不是最好的选择)。
【问题讨论】:
-
永远不要使用
async: false。这是一种可怕的做法,已被弃用。查看浏览器控制台中抛出的警告。永远不需要使用它。 -
@Max 请检查我编辑的答案
-
你得到
undefined因为get_write_user_values没有返回任何东西。
标签: javascript jquery ajax return