2013-07-06 73 views
-3

我有下面的函數檢查服務器返回的消息,看看它的真/假,但它似乎沒有返回true或false。Javascript函數true/false

// Return from server 
xhr.onload = function() { 
    var data = JSON.parse(this.responseText); 
    Ti.API.info(data); 
    if (data.success == true) { 
     Ti.API.info('Logged In'); 
     return true; 
     // If not flag an error 
    } else { 
     return false; 
     Ti.API.info('Failed Registration'); 
    }; 
}; 

這是此是從服務器,其中成功要麼是0或1。

{ 
    message = "Username already exists."; 
    success = 0; 
} 
+6

'return false; Ti.API.info('失敗註冊');' - 第二條指令無法訪問。 – mishik

+0

它將返回一個值給誰?畢竟它是一個事件處理程序。 – zeroflagL

回答

1

基本上if-else不能選擇第三路徑跟隨返回的消息時,它總是會上的二。與您的代碼,但是,我認爲這個問題是與指令順序,應該是:

// Return from server 
xhr.onload = function() { 
    var data = JSON.parse(this.responseText); 
    Ti.API.info(data); 
    if (data.success == true) { 
     Ti.API.info('Logged In'); 
     return true; 
     // If not flag an error 
    } else { 
     Ti.API.info('Failed Registration'); 
     return false; 
    }; 
}; 

所以,要麼Logged InFailed Registration將被調用。 在您原來的帖子success=0被評爲false,但由於return聲明是第一個 - Ti.API.info('Failed Registration');從未執行。

+0

啊,歡呼聲只是意識到我錯了順序 – Tam2