我在GWT中执行throw执行时遇到问题。所以我想在位于“服务器端”的客户端显示一个简单的字符串列表。好吧,我在我的主类中有这个属性:GWT异步调用执行顺序问题
private final GreetingServiceAsync greetingService = Util.getInstance(); //这就像>输入GWT.create(GreetingService.class); public ArrayList songs = new ArrayList();
,并在我的onModuleLoad()方法,我必须使异步调用服务器类的另一个私有方法的调用:
songs.addAll(getSongsList());
所以我getSongsList方法如下:
public ArrayList<String> getSongsList() {
final int defaultSize = 4;
final ArrayList<String> temp = new ArrayList<String>();
GWT.log("Enter in getSongsLists");
greetingService.greetSongMostPopular(defaultSize,
new AsyncCallback<ArrayList<String>>() {
public void onSuccess(ArrayList<String> result) {
GWT.log("Result is:" + result);
temp.addAll(result);
GWT.log("Case 1 TEMP= " + temp);
}
public void onFailure(Throwable caught) {
// throw new
// UnsupportedOperationException("Not supported yet.");
Window.alert("Error greeting data");
}
});
GWT.log("CASE 2 TEMP = " + temp);
return temp;
}
我的问题是,在案例1,我得到
[INFO] [MainModule] - 案例1个TEMP = [宋1 ,Song 2,Song 3,Song 4]
但是在CASE 2中我得到ArrayList为空!
[INFO] [MainModule] - 案例1 TEMP = []
我在做什么错?
在此先感谢!
嗨,我很喜欢类似的问题。你能告诉你做了什么吗?我的问题是在这个链接http://stackoverflow.com/q/9788970/1046176 – NewCodeLearner