java - GWT AsyncCallback 不填充静态成员

标签 java gwt asynchronous smartgwt

我有一个 AsyncCallback 调用,它联系我的 GWT-RPC 服务并检索一些数据。我试图将该数据存储到一个类中,该类具有一个静态方法来存储查询结果。但是,我注意到数据没有填充到静态数据成员中。如果我通过在 AsyncCallback 调用中放置 SC.logWarn(...) 来“减慢”AsyncCallback 调用,则静态数据成员将被正确填充。

final AsyncCallback<Set<MyData>> dataCallback =
         new AsyncCallback<Set<MyData>>() 
         {
            @Override
            public void onSuccess(Set<MyData> aDataType)
            {
               for (MyData data : aDataType)
               {
                  String someData = aDataType.getData();

                  Record rec = new Record();
                  rec.setAttribute("data", someData);
                  getDataSource().addData(rec);                  
               }                   
               LocalUiCache.setLocalCache(new ResultSet(getDataSource()));
            }
         };
      MyDataService.RPC.getInstance().getData(dataCallback);

...

public class LocalUiCache
{
   private static ResultSet localCache;

   /**
    * @return the localCache
    */
   public static ResultSet getLocalCache()
   {
      return localCache;
   }

   /**
    * @param aLocalCache the localCache to set
    */
   public static void setLocalCache(ResultSet aLocalCache)
   {
      localCache = aLocalCache;
   }
}

最佳答案

我对此不确定,但我认为 SmartGWT 不会快速重新加载您的更改。 您可以尝试调整数据源缓存或显式调用 invalidate方法。

其他建议肯定会起作用,但这是“肮脏的黑客”。您可以放入异步回调预定调用:

new Timer() {    
  public void run() {
    LocalUiCache.setLocalCache(new ResultSet(getDataSource()));
  }
}.schedule(50);

关于java - GWT AsyncCallback 不填充静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682322/

相关文章:

html - GWT CSS 问题

javascript - setTimeout 函数,以 Promise 解析值作为回调

swift - 从 SOAP 网络服务结果更新文本字段失败

javascript 确认阻止 Chrome 中的屏幕更新

java - Jetty 和 Tomcat 之间 getResource 的差异产生文件未找到异常

java - 从 1 到 N 的所有数字的总和将始终为零

java - 如何销毁Java Process的子进程

java - GWT MVP 和 SmartGWT 兼容性

java - GWT:何时使用 LazyDomElement?

java - 如何使桌面应用程序模块化?