Используя функцию временной задержки в JavaScript
Я пытаюсь установить значения ключей localStorage после того, как определенное условие становится истинным, но подождите 2 секунды, прежде чем оно сможет обновить значение ключа localStorage.
Это то, что я пытаюсь сделать, но он выдает исключение, и когда он пытается установить значение localStorage
if(tempArray.length <= 0){
setTimeout(function(){
this.storage.set(achkey,1);
},2000);
}
Исключение говорит, что переменная achkey не определена, хотя я могу использовать ее вне функции setTimeout. Как мне реализовать задержку и правильно установить значения внутри? Я использую движок ImpactJS, который использует JavaScript. Я также использую плагин для своего localStorage.
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);
}