ionic4 / angular7 - 如何在意外的 BLE 中断时使用导航 API?

ionic4 / angular7 - How should one use the navigation API on unexpected BLE interrupts?

开发中的代码在Android和iOS上都是运行,使用的框架是Angular7和ionic4以及cordova BLE插件。

发生意外连接失败后,应用程序应导航回根 URL / 主屏幕,确实如此。但之后无法从主屏幕导航离开,应用程序卡住了。

到目前为止,我已经确定确实触发了导航事件,并且底层 BLE 插件仍然有效并在尝试重新连接时建立了新连接。

根据 Google Chrome 开发人员工具,DOM 已清除任何剩余页面,正如预期的那样。

此外,我已经确定任何持有全局状态的服务都已完全重置。

我已经尝试将 angular 和 ionic 更新到最新版本,但没有任何区别。

此代码片段被调用为来自某些 s

的(点击)-Event 的回调
this.communicatorService.connect(device).subscribe(
            peripheral => {
                console.debug('CONNECTED');
                this.zone.run(() => {
                    this.navCtrl.navigateForward('/connected').then(
                        _ => console.debug('NAVIGATED')
                    );
                });
            },
            error => {
                console.error(error);
                this.resetState();
                this.zone.run(() => {
                    this.navCtrl.navigateBack('/').then(
                        _ => console.debug('NAVIGATED BACK')
                    )
                });
            }
        );

我希望在控制台上读取 CONNECTED 和 NAVIGATED,然后见证页面转换。

只有在应用遇到意外的 BLE 连接丢失之前才会出现这种情况。

连接丢失后,我可以在控制台上读取 'NAVIGATED BACK'。当尝试重新连接到 BLE 设备时,代码片段被执行,我可以读取 CONNECTED 和 NAVIGATED,但没有发生页面转换。

在这种情况下我使用导航 API 正确吗?

发现错误。我在控制器的 ngOnDestroy-method.

中有一个阻塞语句