diff --git a/src/providers/utils/dom.ts b/src/providers/utils/dom.ts index d026def15..bf303e859 100644 --- a/src/providers/utils/dom.ts +++ b/src/providers/utils/dom.ts @@ -1160,8 +1160,21 @@ export class CoreDomUtilsProvider { } const loader = this.loadingCtrl.create({ - content: text - }); + content: text + }), + dismiss = loader.dismiss.bind(loader); + let isDismissed = false; + + // Override dismiss to prevent dismissing a modal twice (it can throw an error and cause problems). + loader.dismiss = (data, role, navOptions): Promise => { + if (isDismissed) { + return Promise.resolve(); + } + + isDismissed = true; + + return dismiss(data, role, navOptions); + }; loader.present();