2011-02-27 126 views
0

我有这样的jQuery的AJAX调用返回值

function check(parameters){ 
some code; 
$.post('/url', function(data) { 
    //and here I want if data==0 return false from function check 
    //if no go and skip to instruction 1 
}); 


    instruction 1; 
} 

我想在我的程序以后如果(检查(PARAMS)== 0),但它似乎并不工作。例如:使用代码。 我如何在Java脚本做到这一点?我需要做如果($。post ... == 0)? 致以问候

回答

1

阿贾克斯是异步的,如果你想成为同步,你可以在ajax方法使用的设置。通过异步请求,您可以提供回调函数。回调函数将在ajax消息返回时运行。

你可以这样调用你的校验功能,使用参数后的回调函数。

check(params, function(data) { 
    if (data == 0) { 
    // do something 
    } else { 
    // do something else 
    } 
}); 

并且在ajax消息返回时在check中运行回调。

function check(parameters, callback){ 
    some code; 
    $.post('/url', function(data) { 
    if (typeof callback === 'function') { 
     callback(data); 
    } 
    } 
} 
+0

感谢您的帮助它解决了我的问题 – John

0

回调函数is not synchronous,这意味着它将在稍后被调用。所以你不能只是去“指令1”,你需要的是在数据为空(或任何应用程序逻辑通话)回调检查,然后调用包含另一个函数“指令1”。换句话说,检查的调用者()不能等待来自Ajax调用的响应。