TypeError: Não é possível ler a propriedade ‘then’ de undefined

loginService.islogged() 

Acima da function, retorne uma string como “failed”. No entanto, quando eu tento executar a function nele, ele retornará um erro de

 TypeError: Cannot read property 'then' of undefined 

e o cursor é indicado logo após connected e antes.

Abaixo está a function completa:

 var connected=loginService.islogged(); alert(connected); connected.then(function(msg){ alert("connected value is "+connected); alert("msg.data value is "+msg.data); if(!msg.data.account_session || loginService.islogged()=="failed") $location.path('/login'); }); 

ATUALIZAR

Aqui está a function islogged()

 islogged:function(){ var cUid=sessionService.get('uid'); alert("in loginServce, cuid is "+cUid); var $checkSessionServer=$http.post('data/check_session.php?cUid='+cUid); $checkSessionServer.then(function(){ alert("session check returned!"); console.log("checkSessionServer is "+$checkSessionServer); return $checkSessionServer; }); } 

Estou certo de que o $checkSessionServer resultará em uma string “com falha”. Nada mais.

Você precisa devolver sua promise à function de chamada.

 islogged:function(){ var cUid=sessionService.get('uid'); alert("in loginServce, cuid is "+cUid); var $checkSessionServer=$http.post('data/check_session.php?cUid='+cUid); $checkSessionServer.then(function(){ alert("session check returned!"); console.log("checkSessionServer is "+$checkSessionServer); }); return $checkSessionServer; // <-- return your promise to the calling function } 

TypeError: Não é possível ler a propriedade ‘then’ de undefined ao chamar um serviço do Django usando AngularJS.

Se você estiver chamando um serviço Python, o código ficará parecido com abaixo:

 this.updateTalentSupplier=function(supplierObj){ var promise = $http({ method: 'POST', url: bbConfig.BWS+'updateTalentSupplier/', data:supplierObj, withCredentials: false, contentType:'application/json', dataType:'json' }); return promise; //Promise is returned } 

Estamos usando o MongoDB como database (sei que isso não importa. Mas se alguém estiver pesquisando com o MongoDB + Python (Django) + AngularJS, o resultado deve vir.