Ionic&Angular&Bugsnag - Пользовательский обработчик ошибок и асинхронная AppVersion
В моем проекте Ionic я хочу использовать Bugsnag, чтобы автоматически сообщать обо всех исключениях.
Для этого используется пользовательский обработчик ошибок. Однако он работает только для обработанных исключений (поэтому он не перехватывает необработанные исключения). Я обнаружил, что это вызвано асинхронной ErrorHandlerFactory:
async function getAppVersionNumber() {
return await new AppVersion().getVersionNumber().then(ver => ver) || null;
}
export async function errorHandlerFactory() {
let version = await getAppVersionNumber();
const bugsnagClient = bugsnag(
{
apiKey: CONFIG.bugsnagApiKey,
appVersion: version,
});
return new BugsnagErrorHandler(bugsnagClient);
}
Мой app.module.ts:
@NgModule({
declarations: [
// commented out
],
imports: [
// commented out
],
bootstrap: [IonicApp],
entryComponents: [
// commented out
],
providers: [
{ provide: ErrorHandler, useFactory: errorHandlerFactory },
// commented out
]
})
export class AppModule {
}
Если я удаляю await / async из вышеперечисленного, отчеты об ошибках работают должным образом, но моя версия, сообщаемая в Bugsnag, всегда "НЕИЗВЕСТНА":
export function errorHandlerFactory() {
let version = 'UNKNOWN';
new AppVersion().getVersionNumber().then(ver => {
version = ver;
});
const bugsnagClient = bugsnag(
{
apiKey: CONFIG.bugsnagApiKey,
appVersion: version || null,
});
return new BugsnagErrorHandler(bugsnagClient);
}
Любая идея, как я могу использовать версию приложения в приведенном выше коде с сообщением всех ошибок правильно?