Каков GWT-эквивалент setTimeout?

#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());
  

Просто. 🙂