-3

我有下面的函数来检查来自服务器的返回消息,看看它的真/假,但它似乎没有返回真或假。

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

1 回答 1

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');从未执行。

于 2013-07-06T09:25:10.433 回答