-1
我知道RPC是异步的,但如何能在其他的方式来解决这个问题(不是等待响应等):如何解决在GWT中等待RPC响应?
public static String htsl(String sentence)
{
final DataBaseAsync db = GWT.create(DataBase.class);
String cookie = staticContent.getCookie("ll");
String shortcut = cookie.split("/")[1];
final String[] lala = new String[1];
database.getTranslated(sentence, shortcut, new AsyncCallback<String>() {
@Override
public void onSuccess(String result) {
lala[0]=result;
//this result I want to return in static function htsl... ?
}
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
});
//here I have blank result, because RPC is slower than te return..
And i have always blank result
return lala[0];
}
我知道这是不好的,但..如果没有可行的解决方案为此,如何等待回应?
嗯,该怎么做? –
查看Jeroen的答案,与我的答案相同,但带有示例代码。您也可以使用['Callback'](http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/Callback.html)或自定义界面作为参数,并将其称为从RPC的'AsyncCallback'返回。如果您不想向调用者公开错误处理,那么自定义接口可能只有一个'onSuccess'(我宁愿调用'onTranslated')。 –