在javascript中使用timedelay函数

时间:2014-04-02 19:23:07

标签: javascript impactjs

我尝试在某个条件变为true后设置localStorage键值,但等待2秒才能更新localStorage键值

这是我想要做的但是它会抛出异常并且当它试图设置localStorage值时

if(tempArray.length <= 0){                               
   setTimeout(function(){
       this.storage.set(achkey,1);                              
   },2000);                                   
}

异常说变量achkey undefined虽然我可以在setTimeout函数之外使用它。如何正确实现延迟和设置值?我正在使用使用javascript的ImpactJS引擎。我也在使用localStorage的插件。

1 个答案:

答案 0 :(得分:1)

您需要缓存this。输入setTimeout的匿名函数后,this现在引用您刚刚声明的函数的范围。

if(tempArray.length <= 0){                               
   var self = this; // Cache the current scope's `this`
   setTimeout(function(){
       self.storage.set(achkey,1);                              
   },2000);                                   
}