Sentry: beforeSend вызывается несколько раз - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть приложение с естественной реакцией и редукцией. Я хочу получить запрос PUT с данными, когда Sentry регистрирует ошибку. Я новичок в Sentry, и я использую это в своем приложении. js:

Sentry.init({
  dsn: ...,
  enableInExpoDevelopment: true,
  debug: true,

  beforeSend(event) {
try {
  fetchMyData(data)
  Sentry.withScope(function(scope) {
    Sentry.captureMessage('Error');
  });
  return event;
}
catch (e) { 
  return e;
}
  },
});

Это работает, и запрос выполняется в большинстве случаев успешно, но beforeSend вызывается несколько раз, а в Sentry события l oop: поставить запрос -> captureMessage -> поставить запрос -> captureMessage… и т. Д.

Есть ли другой способ вызова метода при регистрации в Sentry? Данные определяются только в момент вызова beforeSend. почему это l oop?

Спасибо!

1 Ответ

1 голос
/ 17 февраля 2020

Я думаю, что это то, что вы хотите:


Sentry.init({
  dsn: 'http://bla.com/12',
  debug: true,
  beforeSend(event) {
    try {
      // fetchMyData(data)
      // Sentry.withScope(function(scope) {
      //   Sentry.captureMessage('Error');
      // });
      const client = new Sentry.ReactNativeClient({dsn: 'http://bla.com/12'});
      client.captureMessage('test');
      return event;
    }
    catch (e) { 
      return e;
    }
  },
});

Вам необходимо создать новый Client для отправки этих событий с beforeSend. Если вы звоните Sentry.captureMessage в beforeSend, вы создаете бесконечное l oop, если не проверяете конкретное c событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...