我想知道JavaScript中可用的setTimeout
函数的GWT等价物吗?
我搜索了这个,但无法找到任何信息。
答案 0 :(得分:18)
计划将来计时器过去。
例如:
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());
易。 : - )