我的问题很简单,我认为很多程序员已经必须面对这个问题。 我使用angularjs和我的JavaScript看起来如下:是否有可能使一个函数不能返回,直到满足条件?
controller('myController', function())
{
if(validateForm())
{
//do after-validation stuff
}
validateForm = function()
{
var val = undefined;
$http.get('api/validate/').
success(function(data){
val = true;
}).
error(function(data){
val =false;
});
while(!val)
{ // loop over till val has value
}
return val;
}
}
我有两个问题:
1)当我进行HTTP调用它返回一个承诺对象,并将其解析为成功或错误的功能。如果是这种情况,那么这段代码中的while循环不应该是无限的,但它是。通过调试,我发现如果我给变量'var'赋值,那么只有http调用被创建,即当循环结束时。 为什么http调用是延迟调用,等待while循环结束? 2)如果我删除了while循环,不管'var'的值是什么,函数都会返回。如何定义'var'才能使它返回?
可以请你先描述一下吗? :) – 2014-10-05 04:22:35
嗨Kalhano Torres Pamuditha,这个场景本身很简单,我试图实现的是一个调用B和B返回一个基于哪个A做某事或继续前进的值。 – sweetcode 2014-10-05 05:18:35
可能重复[如何从Ajax调用返回响应?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – 2014-10-05 05:26:39