设置如下:
var blah = function () {
var check = false;
verify({ success: function () {
if... check = true;
else... check = false;
}});
return check;
};
我们的想法是使用verify函数检查某些内容,然后返回true
或false
。但是,上述方法将始终返回false
- 在调用success
函数之前返回。
如何获得我需要的结果?
答案 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;
}