Я работаю над расширением Firefox и хочу использовать таймер для управления отправкой данных каждые 60 секунд.
В основной файл .js помещена следующая функция инициализации:
var timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer);
timer.init(sendResults(true), 60000, 1);
Однако, когда я пытаюсь запустить это, я получаю следующую ошибку в консоли Firefox:
"Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsITimer.init]" nsresult: "0x80004003"...
И так далее.Что я сделал не так?
ОБНОВЛЕНИЕ :
Следующее работает для моих нужд, хотя первоначальная проблема использования nsITimer все еще остается:
var interval = window.setInterval (function (thisObj) {thisObj.sendResults (true);}, 1000, this);}
Полезные ссылки, объясняющие, почему это работает (документация по setInterval / sendResults, а также решение проблемы this):
https://developer.mozilla.org/En/DOM/window.setTimeout https://developer.mozilla.org/En/Window.setInterval (won)Позвольте мне опубликовать более двух гиперссылок)
http://klevo.sk/javascript/javascripts-settimeout-and-how-to-use-it-with-your-methods/