Mojo SDK - 设置计时器

时间:2009-07-19 03:49:29

标签: webos palm-pre mojo-sdk

我正忙着为Palm Pre构建应用程序。

我有一个简单的问题:如何为某些代码设置一个计时器,以便在经过一段时间后运行?

我尝试使用常规的旧javascript setTimeout,但它似乎无效。

这是我尝试过的:

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

似乎都没有工作。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:3)

原来,Mojo使用了原型javascript框架。

我能够通过使用:

来解决这个问题
this.someFunction.delay(seconds, [functionArgs,]);

让我感到震惊的一件事是delay方法更改了this的值,因此延迟函数不能指望this与您只是简单相同直接调用它。

答案 1 :(得分:1)

@TM:感谢您指出Prototype的bind()方法。昨天我正在努力解决setTimeout()问题并最终使用像你指出的Prototype的delay()方法,然后今天早上我在Mitch Allen的“Palm webOS”书中看到他在this.controller上调用了setTimeout() .window对象,如下:
this.controller.window.setTimeout(this.someFunction.bind(this), someNumberOfMilliseconds);

我不认为我会注意到this.controller.window的使用,如果我没有找到那个解决方案,现在我注意到书中的几个地方this.someFunction.bind(这个虽然他从未解释过它的作用,但仍在使用。现在我知道了!