Quel est le meilleur moyen d'attendre que plusieurs fonctions de rappel asynchrones se terminent en Java avant de continuer. Plus précisément, j'utilise GWT avec AsyncCallback, mais je pense qu'il s'agit d'un problème générique. Voici ce que j'ai maintenant, mais il y a sûrement moyen plus propre ...
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
}
}