TypeError:无法读取未定义的属性'then'

loginService.islogged() 

上面的函数返回一个像“失败”的string。 但是,当我尝试运行然后function,它会返回错误

 TypeError: Cannot read property 'then' of undefined 

光标在connected之后,之前即表示。

以下是全部function:

  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'); }); 

UPDATE

这是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将导致一个“失败的”string。 而已。

您需要将您的承诺退回到调用函数。

 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 }