0

可能重复:
AJAX 函数未返回变量

我有这个功能:

   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"
  }
]

有人可以告诉我我在这里做错了什么吗?

4

1 回答 1

1

您的getCompanyName()函数将很快完成执行。在 ajax 请求完成之前很久。所以如果你写这样的东西:

var a=getCompanyName(companyID);,结果将是未定义的,因为响应尚未从服务器返回。(尽管您已经退出getCompanyName()函数)

长话短说,您需要等待直到 ajax 响应完成(而不是直到getCompanyName(companyID)函数完成,删除return result并将处理结果所需的所有功能放入回调函数中/或从中调用其他函数.. ..

于 2013-01-20T17:07:08.763 回答