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