为什么这个变量函数返回undefined?

时间:2014-09-05 18:17:08

标签: javascript jquery variables requirejs return

如果我将var player;替换为var player = 'hello',则下面的脚本会返回undefined,然后返回hello。我必须做一些愚蠢的事,但我不能把手指放在上面。

我已经知道正在触发post的成功函数,因为DOM操作正在完成,但player不会改变值。

// js/controllers/authentication.js

define([
    'jquery',
    'jquerym',
    'jqueryck',
    'underscore',
    'backbone'
], function($, JQM, JQCK, _, Backbone) {
    var AuthenticationController = function() {
        var player;
        // Verify signed in player
        if (!_.isUndefined($.cookie('screen')) && !_.isUndefined($.cookie('token1')) && !_.isUndefined($.cookie('token2'))) {
            var screen = $.cookie('screen');
            var token1 = $.cookie('token1');
            var token2 = $.cookie('token2');
            $.post('/api/player-check.php', {screen: screen, token1: token1, token2: token2}, function(data) {
                if (_.isEqual(data.status, 'verified')) {
                    // Update main nav
                    if (!_.isElement($('#site-nav .ui-panel-inner .signed-in-cta')[0])) {
                        $('#site-nav .ui-panel-inner .sign-in-cta').remove();
                        $('#site-nav .ui-panel-inner').prepend('<div class="signed-in-cta row cf"><img class="col" src="http://example.com/'+data.avatar+'"><div class="links col span_13"><a id="profile-lk" class="screen-name col span_12">'+data.screen+'</a><a id="qr-lk" class="qr-code col span_4"><i class="icon icon-qrcode icon-lg"></i></a></div></div>');
                        if (!_.isElement($('#site-nav .ui-panel-inner ul li #sign-out')[0])) {
                            $('#site-nav .ui-panel-inner ul').append('<li><a id="sign-out" class="ui-link"><i class="icon icon-power icon-lg"></i> Sign Out</a></li>');
                        }
                    }
                    player = 'verified';
                } else {
                    player = 'unknown';
                }
            }, 'json');
        } else {
            player = 'unknown';
        }
        return player;
    };
    var authenticated = AuthenticationController();
    console.log(authenticated);
});

0 个答案:

没有答案