未捕获的 ReferenceError:未定义 importScripts

新手上路,请多包涵
阅读 667
2 个回答

此代码需要位于工作脚本中。工人本身是通过一个新的 Worker 对象创建的 - 请参阅 教程中的 入门

您链接的代码在 worker created here 中。

原文由 Bergi 发布,翻译遵循 CC BY-SA 3.0 许可协议

当你创建一个 worker 时,它实际上被执行了两次。第一步是在全局“窗口”对象的上下文中(意味着您可以访问所有窗口对象函数)。第二次调用是在具有不同全局对象的 worker 的上下文中进行的,其中存在“importScripts”。

 // proper initialization
if( 'function' === typeof importScripts) {
   importScripts('script2.js');
   addEventListener('message', onMessage);

   function onMessage(e) {
     // do some work here
   }
}

注意 addEventListener 在 if 语句中。如果你把它放在它外面,你的回调将被注册两次。一次在全局“窗口”上,一次在工人全局上。

编码愉快!

原文由 SJ Anderson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题