我有一个被调用的函数,在其中,我调用另一个函数:
updatePerson(name)
出于某种原因,当调用下面的函数时,它永远不会激活。该功能中的其他所有功能都可以使用。
function updateName(name) {
$.get('XXX',function (data) {
var results = $.parseJSON(data);
var matchName = String(results.data[0].first_name);
updatePerson(matchName);}
);
};
有没有人知道我做错了什么?
如果我跑alert(matchName)
,我会得到尼克作为回应。
如果我运行console.log(updateMap(matchAddress))
我得到了未定义的
答案 0 :(得分:1)
这可能与您从回调函数传递参数的事实有关。在Javascript中,Callback中的变量在回调之外是不可用的。 尝试将String(results.data [0] .first_name)的值设置为在updateName函数之外声明的变量(即全局变量),然后在update name之外调用updatePerson函数,并将全局声明的变量作为参数。像这样
var globalMatchName = '';
function updateName(name) {
$.get('XXX',function (data) {
var results = $.parseJSON(data);
globalMatchName =String(results.data[0].first_name);
}
);
updatePerson(globalMatchName)
}