我的問題很簡單,我認爲很多程序員已經必須面對這個問題。 我使用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