1

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

这是我正在尝试做的,但它会引发异常,并且当它尝试设置 localStorage 值时

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

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

4

1 回答 1

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);                                   
} 
于 2014-04-02T19:25:34.523 回答