#gwt
#gwt
Вопрос:
Я хотел узнать, какой GWT-эквивалент setTimeout
функции доступен в JavaScript?
Я искал это, но не смог найти никакой информации.
Ответ №1:
Планирует истечение таймера в будущем.
например.:
Timer t = new Timer() {
public void run() {
Window.alert("Nifty, eh?");
}
};
// Schedule the timer to run once in 5 seconds.
t.schedule(5000);
Ответ №2:
Вам следует взглянуть на методы класса Scheduler. Они позволяют вам планировать команды с фиксированной периодичностью (раз в n миллисекунд), фиксированной задержкой (ждать n миллисекунд после завершения команды) или только однократно отложенные команды.
Методы этого класса предоставляют преимущество перед Timer.schedule, поскольку они обеспечивают большую гибкость в отношении того, когда будет вызвана ваша команда, и требуют от вас меньше самостоятельного написания кода.
Комментарии:
1. …но таймер может быть отменен или перенесен, а не ScheduledCommand.
Ответ №3:
Чтобы удалить шаблонный код, я создал этот метод (требуется 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());
Просто. 🙂