我有这个功能:
function getCompanyName(companyID) {
$.getJSON('http://www.domain.com/' + companyID + '.json', function(companyData) {
$.each(companyData, function(i,item){
result = item.name;
});
return result;
});
};
如果我将其称为getCompanyName(13)
,结果为undefined
,如果我访问www.domain.com/13.json
,我会得到以下结果:
[
{
id: 13,
category_id: 2,
name: "Company Name",
phone: "333-333-3333",
address: "Address",
description: "Description",
logo_url: "/system/businesses/logos/000/000/013/thumb/G13.jpeg?1348191485"
}
]
有人可以告诉我这里做错了什么吗?
答案 0 :(得分:1)
getCompanyName()函数将以非常快的速度执行。早在ajax请求完成之前。 所以,如果你写这样的东西:
var a=getCompanyName(companyID);
,结果将是未定义的,因为响应尚未从服务器返回。(尽管您已经退出 getCompanyName()函数)
长话短说,你需要做好准备直到ajax响应完成(直到getCompanyName(companyID)
功能完成, - 删除return result
并放置所需的所有功能处理回调函数内的结果/或从中调用其他函数....