javascript - 将 'unhandled' 网络 worker 异常标记为已处理

标签 javascript exception web-worker

我正在尝试测试一些使用网络 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/

相关文章:

javascript - 如何使用固定文本创建图像幻灯片?

java - 自动异常处理

node.js - 使用worker_threads的 typescript 配置

javascript:如何使用函数式编程比较两个对象数组?

javascript - 错误(类型错误 : Cannot read property 'style' of null(…)) pop out whenever placeAt() method is called

c# - 在 ActionResult 方法中抛出异常

c++异常从字符串转换为c_str创建垃圾字符

javascript - 如何在 Vercel 上的 SvelteKit 应用程序中创建 Web Worker?

jquery - HTML Web Worker 和 Jquery Ajax 调用

javascript - ES6 (AngularJS) 服务