Есть ли способ сделать мои собственные асинхронные методы на GWT? Я использую gwt 2.7 и кажется, что никакие классы параллелизма Java не совместимы с gwt.GWT: как создать собственные асинхронные методы?
Вот моя история. Моя клиентская сторона имеет класс обслуживания, который кэширует некоторые данные сервера. Он имеет обычный метод получения (синхронный) для получения кэшированных данных, а также имеет метод перезагрузки для обновления кеша (конечно, он асинхронный). После отправки запроса на перезагрузку метод getter должен быть отключен до тех пор, пока не будет выполнено обновление.
Прямо сейчас, каждый раз, когда я использую метод геттера, я обертываю его внутри таймера. Он отлично работает, но мне интересно, есть ли лучший способ сделать это. Это слишком большой шаблонный код.
final AutoProgressMessageBox messageBox =
ServiceManager.createProgressMessage("Progress", "Loading Products...");
Timer timer = new Timer(){
@Override
public void run() {
if(!serviceManager.isProductLocked()){
// already loaded
serviceManager.getProducts();
// do my work...
messageBox.hide();
this.cancel();
}
}
};
timer.scheduleRepeating(2000);