typescript - Sentry:beforeSend 被调用多次
问题描述
我有一个带有 redux 的 react-native 应用程序。当 Sentry 记录错误时,我想获取带有数据的 PUT 请求。我是 Sentry 的新手,我在 App.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 中的事件循环:Put Request -> captureMessage -> Put Request -> captureMessage... 等等。
当 Sentry 登录时,还有另一种方法可以调用该方法吗?数据仅在调用 beforeSend 时定义。为什么会有这个循环?
谢谢!
解决方案
我认为这就是你想要的:
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
如果您不检查特定事件,则会创建一个无限循环。
推荐阅读
- javascript - 如何在 onchange 函数后加载要输入的值
- sitecore - Sitecore 7.2 - 创建客户保存到数据库操作
- iphone - TempData 在 iPhone 的 Safari 浏览器中不起作用
- php - where 和 or_where codeigniter ajax 数据表搜索不起作用(2 where)
- typescript - 如何从 tsconfig 导入自定义 .d.ts 文件
- javascript - 如何从 javascript 承诺中获取价值?
- ssl - go_lang 中的“Craft”TLS 客户端 Hello
- c# - 从 excel 到 PowerPoint 的 OpenXML 数据
- docker - docker image prune 不适用于版本 < 1.13
- powershell - 使用powershell复制文件并使用日期时间更改文件名