异步获取请求返回true

时间:2015-09-29 12:33:57

标签: javascript jquery asynchronous get

我有代码:

if (venue_exists(instagramUserID)){
    alert('A');
}else {                              
    alert('C');
}  


function venue_exists(instagramUserID) {    
    $.get( "/venues/" + instagramUserID, function(json) {
        if (json.data.success){
            alert('B');            
            return true;
        }         
 }, "json" );

目前我的输出是:BC

我很困惑为什么代码没有进入A,因为true正在返回。这与asynchronous request有关吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

是的,它发生是因为ajax是异步的。当你调用venue_exists时,它返回undefined。
如果您需要进行该检查,则需要同步调用它。

function venue_exists(instagramUserID) {
   return JSON.parse($.ajax({
     url: '/venues/' + instagramUserID,
     type: "GET",
     dataType: "json",
     async: false
}).responseText);}