Mojo SDK - установить таймер - PullRequest
2 голосов
/ 19 июля 2009

Я возиться с созданием приложения для Palm Pre.

У меня простой вопрос: как настроить таймер для запуска некоторого кода после истечения определенного времени?

Я пытался использовать обычный старый javascript setTimeout, но, похоже, он не работает.

Вот что я пробовал:

setTimeout(this.someFunction, 3000);
setTimeout('this.someFunction()', 3000);

Никто, похоже, не работает. Как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 20 июля 2009

Оказывается, что прототип фреймворка javascript используется Mojo.

Мне удалось решить эту проблему с помощью:

this.someFunction.delay(seconds, [functionArgs,]);

Одна вещь, которая поразила меня, заключалась в том, что метод delay изменил значение this, поэтому отложенная функция не должна ожидать, что this будет таким же, как если бы вы просто вызывали ее напрямую.

1 голос
/ 21 октября 2009

@ TM: Спасибо за указание на метод Prototype bind (). Вчера я боролся с проблемой setTimeout () и в итоге использовал метод delay () Prototype, как вы указали, а затем сегодня утром я увидел в книге Palm WebOS Митча Аллена, что он вызывает setTimeout () для this.controller .window объект, вот так:
this.controller.window.setTimeout(this.someFunction.bind(this), someNumberOfMilliseconds);

Не думаю, что я заметил бы использование this.controller.window, если бы не искал именно это решение, а сейчас я замечаю несколько мест в книге, где this.someFunction.bind (this ), хотя он никогда не объясняет, что это делает. Теперь я знаю!

...