我一直试图让Timeout在我的本机项目中工作,我使用了SO并找到了许多答案,解释说你必须让它返回一个函数,所以它必须看起来像这样
setTimeout(function(){this.countLosses(counter, losses)},1000);
与...相关
setTimeout(this.countLosses(counter, losses),1000);
然而,当我运行前者时,我得到一个undefined不是一个函数,当我按预期运行后者时,超时无法正常工作。
我试图调用的函数看起来像是
countLosses(counter:number, losses:array){
if (counter<5) {
this.clicked(losses.pop())
counter=counter+1;
setTimeout(function(){this.countLosses(counter, losses)},1000);
}else{
this.state = {
animateTime: false,
selected:[],
}
}
}
答案 0 :(得分:0)
好的,我终于明白了
你必须添加bind然后在括号中添加
所以
setTimeout(this.countLosses.bind(this,counter, losses),1000);