2013-07-06 4 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 ('Failed Registration'); '- вторая инструкция недоступна. – 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 In или Failed Registration будет называться. В исходном посте success=0 был оценен как false, но из-за return заявление было первым - Ti.API.info('Failed Registration'); так и не было выполнено.

+0

Ах, приветствия только что поняли, что у меня это было в неправильном порядке – Tam2