什么是相当于setTimeout的GWT?

时间:2011-11-09 00:56:15

标签: gwt

我想知道JavaScript中可用的setTimeout函数的GWT等价物吗?

我搜索了这个,但无法找到任何信息。

3 个答案:

答案 0 :(得分:18)

Timer.schedule

  

计划将来计时器过去。

例如:

Timer t = new Timer() {
  public void run() {
    Window.alert("Nifty, eh?");
  }
};

// Schedule the timer to run once in 5 seconds.
t.schedule(5000);

答案 1 :(得分:4)

您应该查看Scheduler类的方法。它们允许您按固定周期(每 n 毫秒一次),固定延迟(完成命令后等待 n 毫秒)或仅一次延迟命令来安排命令。

此类的方法提供了优于Timer.schedule的优势,因为它们可以更灵活地调用命令的时间,并且要求您自己编写更少的代码。

答案 2 :(得分:1)

为了删除样板代码,我制作了这个方法(需要GWT 2.8或更高版本):

import com.google.gwt.user.client.Command;
import com.google.gwt.core.client.Scheduler;

public static void delay(int delayMs, Command afterDelay) {
    Scheduler.get().scheduleFixedDelay(
        () -> {
            afterDelay.execute();
            return false;
        },
        delayMs);
}

所以你现在可以这样做(例如:延迟2秒,然后调用myMethod):

delay(2000, () -> myMethod());

易。 : - )