The script below returns undefined, if I replace var player;
with var player = 'hello'
then it returns hello
. I must be doing something stupid but I can't put my finger on it.
I already know the success function of the post
is being triggered because the DOM manipulation is being done, but player
doesn't change value.
// 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);
});