Asynccallback的问题.在执行Onsuccess方法之前,值是返回的



我编写了以下代码。这件代码基本上只是从数据库中检索值。但是问题是,它正在完成OnSuccess方法之前返回该值。

如何减轻问题?

私人静态最终someserviceasync service = gwt.create(someservice.class(;

private static boolean valueIndicator = true;
private static boolean checkValueOfVariable() {
    service.isValueTurnedOn(new AsyncCallback<Boolean>() {
        @Override
        public void onFailure(Throwable caught) {
            Window.alert("Failed to retrieve value."+caught.getLocalizedMessage());
        }
        @Override
        public void onSuccess(Boolean value) {
            valueIndicator = value;
        }
    });
    return valueIndicator;
}

我想在执行OnSuccess方法后返回值。

这将行不通。

服务器调用是异步的。因此,该方法将在服务器调用返回之前返回值。

使用回调:

public interface ReturnHandler {
  void onReturn(Boolean value);
}

尝试:

private static void checkValueOfVariable(ReturnHandler handler) {
    service.isValueTurnedOn(new AsyncCallback<Boolean>() {
        @Override
        public void onFailure(Throwable caught) {
            Window.alert("Failed to retrieve value."+caught.getLocalizedMessage());
        }
        @Override
        public void onSuccess(Boolean value) {
            handler.onReturn(value);
        }
    });
}

并使用:

调用它
checkValueOfVariable(new ReturnHandler() {
  public void onReturn(Boolean value) {
    valueIndicator = value;
  }
)

希望会有所帮助。

相关内容

  • 没有找到相关文章