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);
}

Любая идея, как я могу использовать версию приложения в приведенном выше коде с сообщением всех ошибок правильно?

0 ответов

Другие вопросы по тегам