title: Waiting until application return Sucess or Failure(AsyncCallBack)
body: <p>Just for example, let's check the code below</p>
  
  <pre><code>private void loadUserFromServer() {
      dispatchAsync.execute(new FindLoggedUserAction(),
            new AsyncCallback&lt;FindLoggerUserResult&gt;() {
          @Override
          public void onFailure(Throwable caught) {
               //do something
          }
  
          @Override
          public void onSuccess(BuscarUsuarioLogadoResult result) {
             //dosomething with user
             result.getUser();
  
         }
         operationTwo();
  }
  </code></pre>
  
  <p>My problem is, I have to execute operationTwo(); after some result of dipatcher(Success or failure). </p>
  
  <p><em>This is just an example, let's assume I can't put operationTwo() inside the onSucess or onFailure()</em></p>
  
  <p>My real PROBLEM</p>
  
  <p>My GateKeeper of presenters that user must be login.</p>
  
  <pre><code>private UserDTO user;
  @Override
  public boolean canReveal() {
          if(getUser() == null){
              ShowMsgEvent.fire(eventBus,"Must Login first", AlertType.ERROR);
              return false;
          }
          return true;
      }
  }
  public UserDTO getUser()
  {
      if(user == null) 
      {
          //call server
          loadUserFromServer();
      }
      return user;
  }
   private void loadUsuarioFromServer() {
      dispatchAsync.execute(new BuscarUsuarioLogadoAction()
       ,new AsyncCallback&lt;BuscarUsuarioLogadoResult&gt;() {
          @Override
          public void onFailure(Throwable caught) {
               //something
          }
  
          @Override
          public void onSuccess(BuscarUsuarioLogadoResult result) {
              if(!(result.getDto().equals(user)))
              {
                  setUsuario(result.getDto(), false); //Set user UserDTO user
                  //event for update Presenter Login/Logout
                  // and Label with username
                  fireUserUpdateEvents();
              }
              else
              {
                  setUsuario(result.getDto(), false);
              }
          }
      });
  </code></pre>
  
  <p>As you can see, when a Presenter with that Gatekeeper is called and user is null,
  getUser() is called, but when dispatch executes, the method doesn't wait until the return of Sucess or Failure</p>
  
  <p>Result: getUser() returns null.</p>
  
  <p>After the sucessful result of dispatch, getUser() returns a DTO. But, as you can see canReveal() already returned false.</p>