Promise方法未定义(带有typescript的Angularjs)
我有个问题 我在我的项目中使用Angularjs和Typescript 我的问题是,当我调用getResult()方法时,浏览器会给出一个未定义的错误 我怎样才能解决这个问题 我调用getResult()方法: 我的控制器:Promise方法未定义(带有typescript的Angularjs),angularjs,typescript,promise,Angularjs,Typescript,Promise,我有个问题 我在我的项目中使用Angularjs和Typescript 我的问题是,当我调用getResult()方法时,浏览器会给出一个未定义的错误 我怎样才能解决这个问题 我调用getResult()方法: 我的控制器: module MyApp { class myModalCtrl { static $inject = ['IOService', '$interval']; public modalStatus: boolean; public promi
module MyApp {
class myModalCtrl {
static $inject = ['IOService', '$interval'];
public modalStatus: boolean;
public promise: any;
constructor(private IOService: IOService, private $interval: ng.IIntervalService) {}
init() {
this.modalStatus = false;
this.cancel();
this.promise = this.$interval(this.listenResult, 3000);
}
getResult() {
return this.IOService.request({
url: 'token/validatetoken',
data: {},
disableSpinner: true
}).then((res) => {
if (angular.isUndefined(res.user)) return false;
else return true;
});
}
listenResult() {
this.getResult().then(res => {
if (res) this.openModal();
});
}
cancel() {
this.$interval.cancel(this.promise);
}
openModal() {
this.cancel();
this.modalStatus = true;
}
closeModal() {
this.cancel();
this.promise = this.$interval(this.listenResult, 3000);
this.modalStatus = false;
}
}
app.controller('myModalCtrl', myModalCtrl);}
共享控制器代码,无法从您提供的代码中应答我共享了控制器。错误发生在哪里?是否在
listenResult
中?是的,listenResult()类型中的错误原因错误:无法读取listenResult()中未定义的属性“getResult”。每隔一天会问一次这个问题。将this.$interval(this.listenResult,3000)
替换为this.$interval(()=>this.listenResult(),3000)
,或替换为this.$interval(this.listenResult.bind(this),3000)
。