2015-11-21 5 views
0

Я пытаюсь использовать обещание вернуть объект к переменной данных, определенной в приведенной ниже функции. Он отлично работает, если я использую обещание в контроллере и делаю res = до $ scope.data, но чем больше я об этом подумал, тем больше не обязательно иметь эту информацию в $ scope, так как идентификатор/идентификатор сеанса пользователя не должен изменение.Можете ли вы использовать обещание .then() внутри Угловой фабрики?

(function(){ 
    'use strict'; 

angular.module('csMgmtApp') 
    .factory('agentFactory', ['$http', function($http){ 

    //other variables set successfully by another method 

     var data = {}, 
      result = {}, 
      access_token = result.access_token, 
      baseURIc = result.resource_server_base_uri; 


     function startSession(startSessionPayload){ 
      var startSessionPayload = startSessionPayload, 
       access_token = result.access_token, 
       baseURIc = result.resource_server_base_uri; 

      return $http({ 
       'url': baseURIc + 'services/v6.0/agent-sessions', 
       'method': 'POST', 
       'headers': {'Authorization': 'bearer ' + access_token, 'content-Type': 'application/json'}, 
       'data': startSessionPayload 
      }).then(function(res){ 
       res = data; 
       console.log("sessionId", res); 
      }); 
     } 
      return {startSession:startSession}; 
}]); 

})(); 

Проблема, заключается в том, что при попытке этого на заводе res удаляется как пустой объект. Является ли то, что я пытаюсь сделать возможным/разумным?

ответ

0

вы определяете данные, чтобы быть пустой объект

//other variables set successfully by another method 

    var data = {}, // <-- here 

, а затем после того, как вы установите res быть data (пустой объект)

  res = data; // <-- data is defined as empty object above 
      console.log("sessionId", res); 

не удивительно, почему он записывает пустой объект

+0

ugh .. Вы. Находятся. Правильно. d'о. спасибо. – someoneHere

Смежные вопросы