【发布时间】:2017-04-10 07:14:38
【问题描述】:
我在 IE 中收到此错误:“TypeError: Object doesn't support property or method 'then'”,在我的 AngularJs 控制器中调用的以下函数中:
GetUserAccessService.checkForValidHashPeriod()
.then(function (result) {
if (result === 'false') {
GetUserAccessService.returnUserHashAuthentication();
}
});
这是在我的 AngularJs 服务中调用的 GetUserAccessService.checkForValidHashPeriod 函数:
this.checkForValidHashPeriod = function () {
var result;
var now = new Date().getTime();
if ($sessionStorage.userAuthenticationTokenDate !== null && $sessionStorage.userAuthenticationTokenDate !== undefined) {
var timeDiff = now - $sessionStorage.userAuthenticationTokenDate;
}
if (angular.isUndefined($sessionStorage.userAuthenticationToken) || timeDiff > 1500000) {
result = false;
}
else {
result = true;
}
var stringResult = result.toString();
return stringResult;
};
使用.then 调用我做错了什么?
【问题讨论】:
-
您的代码中绝对没有任何内容表明从
checkForValidHashPeriod返回的stringResult将具有then方法。据我所知,它只会是字符串值"true"或"false" -
@Phil 感谢您的回复。我想请您澄清一下“您的代码中没有任何内容表明从
checkForValidHashPeriod返回的stringResult将具有then方法”是什么意思。我正在学习并希望了解。 -
你的方法返回一个字符串,而不是一个承诺。字符串没有有
then方法~developer.mozilla.org/en/docs/Web/JavaScript/Reference/… -
@Phil 谢谢!天哪,我真希望我几周前就知道了。不是每个人都解释为什么出了问题。你经常因为提出一个有效的问题而被否决。但是,由于有人认为这是一个“愚蠢”的问题(或答案),你就会受到惩罚。无论如何,这就是我们来到 StackOverflow 的原因;学习、成长和给予。
标签: javascript angularjs