Synchroniser l'appel RPC dans GWT
Bonjour
J’ai une application gwt , en cliquant sur un boutton « environment » je dois charger la page environnement , celle-ci contient des sections à gauche qui sont insérées à partir d’une liste récupérées à partir d’une fonction « getCategories »
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public EnvironmentPresenter (EnvironmentOrganeServiceAsync rpcService,HandlerManager eventBus ,AppConstants appConst ){
this.eventBus = eventBus;
this.rpcService=rpcService;
this.appConst=appConst;
categs=new ArrayList <categorie>();
//cette fonction récupère les catégories et les met dans categs
getCategories();
displayEnvir=new EnvironmentAreaTest(appConst,categs);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
private void getCategories(){
AsyncCallback <List<categorie>> callback = new AsyncCallback<List<categorie>>() {
public void onFailure(Throwable caught) {
// TODO: Do something with errors.
Window.alert("Error fetching data");
}
@Override
public void onSuccess(List<categorie> result) {
for(categorie cat:result){
categs.add(cat);}
}
};
// Make the call to the ListEmployes service.
rpcService.getCategs(callback) ;
} |
Le problème c’est que malgré que l’appel de la fonction getCategories() soit avant l’appel du constructeur de EnvironmentAreaTest mais la fonction « onSuccess » de getCategories() est exécuté après celui-ci !!!
Donc le constructeur est appelé avec une liste vide des catégories :cry:
Est-ce quelqu’un pourrait me dire pourquoi ?
et comment puis je faire pour executer
Code:
displayEnvir=new EnvironmentAreaTest(appConst,categs);
après avoir récupérer les catégories
Merci