全局变量保持为空
问题描述:
我有一段javascript代码,我通过ajax调用来检索员工列表。全局变量保持为空
var employees_json = '';
Ajax.callbackAsync('getEmployees', ['2627016'],
function(response){
employees_json = response;
console.log('this: '+ employees_json);
},
function(error){
alert('Error while retrieving employees: '+ error);
}
);
console.log('that: '+ employees_json);
(2627016是branch_id)
输出在控制台上:
this: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
that:
为什么employees_json空之外的Ajax调用?
或者我做了一个我没有看到的类型!?!
答
您的console.log在函数(响应)之前执行。
log是不是这样? : 即: 这:[object object],[object object],[object object],[object object],[object object],[object object],[object object],[object object],[object Object ],[object Object],[object Object],[object Object]
javascript是1个线程,但您永远不知道回调函数何时运行。 所以你必须调整你的代码。
+0
我已经移动了响应函数中响应的代码。 – nhalink 2013-02-20 16:47:45
因为在处理异步代码时,'外部'并不意味着'之后'。 – raina77ow 2013-02-20 15:08:39
记录的顺序与您发布的方式完全相同吗? – techfoobar 2013-02-20 15:09:39
不,我有几个console.logs在我的代码,这是在底部。 – nhalink 2013-02-20 15:12:09