Что такое GWT-эквивалент setTimeout? - PullRequest
21 голосов
/ 09 ноября 2011

Я хотел бы узнать GWT-эквивалент функции setTimeout, доступной в JavaScript?

Я искал это, но не смог найти никакой информации.

Ответы [ 3 ]

18 голосов
/ 09 ноября 2011

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);
4 голосов
/ 09 ноября 2011

Вы должны взглянуть на методы класса Scheduler . Они позволяют планировать команды на фиксированную периодичность (один раз каждые n миллисекунды), фиксированную задержку (ожидание n миллисекунд после завершения команды) или только однократные отложенные команды.

Методы этого класса обеспечивают преимущество перед Timer.schedule , поскольку они обеспечивают большую гибкость в отношении того, когда будет вызываться ваша команда, и требуют от вас меньше кода самостоятельно.

1 голос
/ 06 ноября 2017

Чтобы удалить шаблонный код, я сделал этот метод (требуется 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());

Легко.: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...