there is a solution in the api docs:
http://ionicframework.com/docs/v2/api/components/alert/Alert/
search for “Dismissing And Async Navigation”
let alert = Alert.create({
title: 'Hello',
buttons: [{
text: 'Ok',
handler: () => {
// user has clicked the alert button
// begin the alert's dimiss transition
let navTransition = alert.dismiss();
// start some async method
someAsyncOperation().then(() => {
// once the async operation has completed
// then run the next nav transition after the
// first transition has finished animating out
navTransition.then(() => {
// here comes your navigation action (push, pop, setRoot)
this.nav.setRoot(XXX);
});
});
return false;
}
}]
});
this.nav.present(alert);