Not quite sure what you are looking for but see if this fits. Just make another service call from inside the callback function.
I got rid of all of 'apply' because I don't think they are needed but you may have to put some back in. HTH.
function(){
var MainController = function($scope, SharePointJSOMService){
$scope.current_user = [];
$scope.loggedInUser = [];
SP.SOD.executeOrDelayUntilScriptLoaded(runMyCode, "SP.js");
function runMyCode(){
$scope.spReady = _spPageContextInfo;
$.when(SharePointJSOMService.getCurrentUser())
.done(function(jsonObject){
if(jsonObject.d.results.length < 1){
// new user
$.when(SharePointJSOMService.getLoggedInUser())
.done(function(jsonObject){
$scope.loggedInUser = jsonObject.d;
$scope.UserName = $scope.loggedInUser.LoginName;
$scope.Display_Name_Full = $scope.loggedInUser.Title;
$scope.Display_Name = $scope.Display_Name_Full.substring(0, $scope.Display_Name_Full.indexOf('(')-1);
$scope.Email_365 = $scope.loggedInUser.Email;
$scope.Email_Company = $scope.UserName.substring($scope.UserName.lastIndexOf('|')+1);
$scope.FName = $scope.Email_Company.substring(0, $scope.Email_Company.indexOf('.'));
$scope.LName = $scope.Email_Company.substring($scope.Email_Company.indexOf('.')+1, $scope.Email_Company.indexOf('@'));
$scope.prefs = true; // force preference pane
$scope.current_user = {};
$scope.projectClose = 'true';
$scope.taskClose = 'true';
$scope.projectManagerClose = 'true';
})
.fail(function(err){
$scope.prefs = true;
console.info(JSON.stringify(err));
});
} else {
// existing user
$scope.prefs = false;
$scope.current_user = jsonObject.d.results[0];
switch($scope.current_user.User_Role){
case 'USR':
$scope.project_view = 'all_cs_proj';
$scope.projectClose = 'true';
break;
case 'RSC':
$scope.project_view = 'all_it_proj';
$scope.projectClose = 'true';
break;
case 'RQC':
$scope.project_view = 'my_rc_proj';
$scope.projectClose = 'true';
break;
case 'PMG':
$scope.project_view = 'my_pm_proj';
$scope.projectClose = 'true';
break;
case 'ADM':
$scope.project_view = 'my_amm_proj';
$scope.projectClose = 'true';
break;
default:
$scope.project_view = 'my_cs_proj';
$scope.projectClose = 'false';
break;
} // end switch
} // end if
})
.fail(function(err){
$scope.prefs = true;
console.info(JSON.stringify(err));
});
}; // end MainController
MainController.$inject = ['$scope', 'SharePointJSOMService'];
angular.module('appITI').controller('MainController', MainController);
})();