Gwt 异步回调问题。值在执行onSuccess方法之前返回

Gwt 异步回调问题。值在执行onSuccess方法之前返回,gwt,Gwt,我已经编写了以下代码。这段代码基本上只是从数据库中检索值。但问题是它在onSuccess方法完成之前返回值 如何缓解这个问题 私有静态最终SomeServiceAsync服务=GWT.create(SomeService.class) private静态布尔值指示器=true; 私有静态布尔值checkValueOfVariable(){ service.isValueTurnedOn(新的AsyncCallback(){ @凌驾 失败时的公共无效(可丢弃){ alert(“检索值失败。”+ca

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

如何缓解这个问题

私有静态最终SomeServiceAsync服务=GWT.create(SomeService.class)

private静态布尔值指示器=true;
私有静态布尔值checkValueOfVariable(){
service.isValueTurnedOn(新的AsyncCallback(){
@凌驾
失败时的公共无效(可丢弃){
alert(“检索值失败。”+catch.getLocalizedMessage());
}
@凌驾
成功时的公共void(布尔值){
valueIndicator=值;
}
});
返回值指示器;
}
我想在执行onSuccess方法后返回值。

这将不起作用

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

使用回调:

公共接口返回处理程序{
返回时无效(布尔值);
}
尝试:

private static void checkValueOfVariable(ReturnHandler){
service.isValueTurnedOn(新的AsyncCallback(){
@凌驾
失败时的公共无效(可丢弃){
alert(“检索值失败。”+catch.getLocalizedMessage());
}
@凌驾
成功时的公共void(布尔值){
onReturn(值);
}
});
}
并使用以下命令调用它:

checkValueOfVariable(新的ReturnHandler()){
返回时的公共void(布尔值){
valueIndicator=值;
}
)

希望这会有所帮助。

你可能会从阅读中受益,阅读内容丰富,几乎与语言无关。
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;
}