我正在尝试测试一些使用网络 worker 的代码。我想检查错误路径是否有效;即,onError
处理程序正确地从 web worker 抛出的异常中恢复。
我遇到的问题是从 Web Worker 传播出去的异常导致它被视为未处理。例如,它在浏览器的控制台日志中打印并导致我的测试环境(一个简单的 Karma 包装器)认为测试失败。
那么,我如何向浏览器/Karma 指示从给定网络 worker 中冒出的异常是预期的,并且不应被视为未处理?我不希望它打印到控制台,我希望我的测试通过。
我想到的唯一想法是将 web worker 代码包装在 try/catch 中,并通过 postMessage
编码捕获的异常,但这需要丢弃大量信息因为需要将错误对象字符串化(否则它是 triggers a data clone error )。
最佳答案
在提供给 onError
处理程序的错误事件对象上调用 preventDefault
。
worker.onError = function(e) {
e.preventDefault(); // <-- "Hey browser, I handled it!"
...
}
关于javascript - 将 'unhandled' 网络 worker 异常标记为已处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32686231/