在继续之前等待多个异步回调函数在 Java 中完成的最佳方法是什么。具体来说,我将 GWT 与 AsyncCallback 一起使用,但我认为这是一个普遍的问题。这就是我现在所拥有的,但肯定有更清洁的方法......
AjaxLoader.loadApi("books", "0", new Runnable(){
public void run() {
bookAPIAvailable = true;
ready();
}}, null);
AjaxLoader.loadApi("search", "1", new Runnable(){
public void run() {
searchAPIAvailable = true;
ready();
}}, null);
loginService.login(GWT.getHostPageBaseURL(), new AsyncCallback<LoginInfo>() {
public void onSuccess(LoginInfo result) {
appLoaded = true;
ready();
}
});
private void ready() {
if(bookAPIAvailable && searchAPIAvailable && appLoaded) {
// Everything loaded
}
}