jquery ajax调用函数返回值

时间:2011-02-27 18:58:09

标签: jquery

我有像这样的代码

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;
}

我希望以后在我的程序中使用if(check(params)== 0)但它似乎不起作用。 我怎么能在java脚本中这样做?如果($。post ... == 0)我需要做什么? 最好的问候

2 个答案:

答案 0 :(得分:1)

Ajax是异步的,如果你想要同步,你可以使用ajax方法中的设置。使用异步请求,您可以提供回调函数。然后在ajax消息返回时运行回调函数。

你可以这样调用你的检查函数,在params之后使用回调函数。

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);
    }
  }  
}

答案 1 :(得分:0)

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