2011-02-27 120 views
0

我有這樣的jQuery的AJAX調用返回值

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

我想在我的程序以後如果(檢查(PARAMS)== 0),但它似乎並不工作。例如:使用代碼。 我如何在Java腳本做到這一點?我需要做如果($。post ... == 0)? 致以問候

回答

1

阿賈克斯是異步的,如果你想成爲同步,你可以在ajax方法使用的設置。通過異步請求,您可以提供回調函數。回調函數將在ajax消息返回時運行。

你可以這樣調用你的校驗功能,使用參數後的回調函數。

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

感謝您的幫助它解決了我的問題 – John

0

回調函數is not synchronous,這意味着它將在稍後被調用。所以你不能只是去「指令1」,你需要的是在數據爲空(或任何應用程序邏輯通話)回調檢查,然後調用包含另一個函數「指令1」。換句話說,檢查的調用者()不能等待來自Ajax調用的響應。