mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-22 05:21:52 +08:00
fix(nav): returning Promise<false> in canLeave / canEnter works as expected
This commit is contained in:
@ -485,8 +485,13 @@ export class NavControllerBase extends Ion implements NavController {
|
|||||||
if (promises.length) {
|
if (promises.length) {
|
||||||
// darn, async promises, gotta wait for them to resolve
|
// darn, async promises, gotta wait for them to resolve
|
||||||
Promise.all(promises)
|
Promise.all(promises)
|
||||||
.then(() => this._postViewInit(enteringView, leavingView, ti, resolve))
|
.then((values: any[]) => {
|
||||||
.catch(reject);
|
if (values.some(result => result === false)) {
|
||||||
|
reject(`ionViewCanEnter rejected`);
|
||||||
|
} else {
|
||||||
|
this._postViewInit(enteringView, leavingView, ti, resolve);
|
||||||
|
}
|
||||||
|
}).catch(reject);
|
||||||
} else {
|
} else {
|
||||||
// synchronous and all tests passed! let's move on already
|
// synchronous and all tests passed! let's move on already
|
||||||
this._postViewInit(enteringView, leavingView, ti, resolve);
|
this._postViewInit(enteringView, leavingView, ti, resolve);
|
||||||
|
Reference in New Issue
Block a user