你如何从JavaScript中的两个函数返回

时间:2011-05-05 21:11:10

标签: javascript

设置如下:

var blah = function () {
    var check = false;
    verify({ success: function () {
        if... check = true;
        else... check = false;
    }});
    return check;
};

我们的想法是使用verify函数检查某些内容,然后返回truefalse。但是,上述方法将始终返回false - 在调用success函数之前返回。

如何获得我需要的结果?

3 个答案:

答案 0 :(得分:2)

你不能,

var blah = function (callback) {
  verify({ 
    success: function () {
      if () { 
        callback(true);
      } else { 
        callback(false);
      }
     }
  });
};

blah(function(result) { 
  // my code here
});

Jquery 1.6有一个新的promise api,它允许你返回异步调用并使它看起来更加同步,但它基本上与此相同。

答案 1 :(得分:1)

看起来verify是异步调用成功函数吗?

如果是这种情况,您需要做的是在blah作为函数后将您要执行的操作打包 - 称之为foo。然后在verify内调用foo - 例如:

    if...  { foo(true);  }
    else...{ foo(false); }

答案 2 :(得分:0)

对于您的示例,您可以执行以下操作:

var blah = function () {
    var check;
    try{
        verify({ success: function () {
            if... throw true;
            else... throw false;
        }});
    }
    catch(e){
        check = e;
    }
    return check;
}