TypeError: не удается прочитать свойство 'then' неопределенного
loginService.islogged()
выше функция возвращает строку, как "failed". Однако, когда я пытаюсь запустить функцию then на нем, он вернет ошибку
TypeError: Cannot read property 'then' of undefined
и курсор указывает сразу после connected
и перед .then
.
ниже приведена полная функция:
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');
});
обновление
здесь 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;
});
}
Я уверен, что $checkSessionServer
приведет к" неудачной " строке. Ничего больше.
2 ответа:
вы должны вернуть свое обещание вызывающей функции.
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: не удается прочитать свойство 'then' неопределенного при вызове службы Django с помощью AngularJS.
Если вы вызываете службу Python, код будет выглядеть следующим образом:
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 }
мы используем MongoDB в качестве базы данных(я знаю, что это не имеет значения. Но если кто-то ищет с MongoDB + Python (Django) + AngularJS результат должен прийти.