我正在尝试使用也是ESM模块的服务工作者文件。
该register
方法有一个额外的参数,它接受一个options
对象,该对象的type
字段的有效值似乎是classic
and module
,但是当我使用时:
navigator.serviceWorker.register('worker.js', { type: 'module' });
// `worker.mjs` doesn't work either
// The file exists in both cases!
我收到一个未指定的DOMException
消息,在Chrome中没有任何消息。
type
通过阅读规格,我弄清楚了有效值是什么,特别是这样:
https://html.spec.whatwg.org/multipage/workers.html#workertype
在我看来,我的代码是有效的。
作为健全性检查,我还尝试过明确设置type
为classic
,然后服务人员注册会通过。如果将其设置为无效值,则会TypeError
告诉我,所以这并不是浏览器尚未意识到type: module
。它被视为特殊情况,它只会抛出一个不DOMException
带任何消息的消息。
我type
是否正确使用该字段?现在还为时尚早,浏览器不支持吗?
真傻!DOMException
记录错误对象时Chrome将仅打印到控制台中(甚至不可扩展),并且Object.keys
在该对象实例上返回[]
,但是当我专门打印时e.message
,罪魁祸首被揭示:
尚未实现RegistrationOptions中的'module'类型。有关详细信息,请参见https://crbug.com/824647。
没被Chrome逗乐。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句