我编写了以下代码。这件代码基本上只是从数据库中检索值。但是问题是,它正在完成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;
}
)
希望会有所帮助。