将 'unhandled' 网络工作者异常标记为已处理
Marking an 'unhandled' web worker exception as handled
我正在尝试测试一些使用网络工作者的代码。我想检查错误路径是否有效;即,onError
处理程序正确地从 web worker 抛出的异常中恢复。
我 运行 遇到的问题是从 Web Worker 传播出去的异常导致它被视为未处理。例如,它在浏览器的控制台日志中打印并导致我的测试环境(一个简单的 Karma 包装器)认为测试失败。
那么,我如何向 browser/Karma 表明从给定 Web Worker 中冒出的异常是预期的,不应被视为未处理? 我不知道'希望它打印到控制台,我希望我的测试通过。
我想到的唯一想法是将 web worker 代码包装在 try/catch 中并通过 postMessage
编组捕获的异常,但这需要丢弃很多信息,因为需要将错误对象字符串化(否则 triggers a data clone error)。
对提供给 onError
处理程序的错误事件对象调用 preventDefault
。
worker.onError = function(e) {
e.preventDefault(); // <-- "Hey browser, I handled it!"
...
}
我正在尝试测试一些使用网络工作者的代码。我想检查错误路径是否有效;即,onError
处理程序正确地从 web worker 抛出的异常中恢复。
我 运行 遇到的问题是从 Web Worker 传播出去的异常导致它被视为未处理。例如,它在浏览器的控制台日志中打印并导致我的测试环境(一个简单的 Karma 包装器)认为测试失败。
那么,我如何向 browser/Karma 表明从给定 Web Worker 中冒出的异常是预期的,不应被视为未处理? 我不知道'希望它打印到控制台,我希望我的测试通过。
我想到的唯一想法是将 web worker 代码包装在 try/catch 中并通过 postMessage
编组捕获的异常,但这需要丢弃很多信息,因为需要将错误对象字符串化(否则 triggers a data clone error)。
对提供给 onError
处理程序的错误事件对象调用 preventDefault
。
worker.onError = function(e) {
e.preventDefault(); // <-- "Hey browser, I handled it!"
...
}