gpt4 book ai didi

javascript - 在服务 worker 文件中使用 ESM(导入/导出)

转载 作者:行者123 更新时间:2023-11-29 20:35:03 24 4
gpt4 key购买 nike

我正在尝试使用一个 service worker 文件,它也是一个 ESM 模块。

register 方法有一个额外的参数接受一个 options 对象,该对象有一个 type 字段,其有效值似乎是 classic module,但是当我使用时:

navigator.serviceWorker.register('worker.js', { type: 'module' });
// `worker.mjs` doesn't work either
// The file exists in both cases!

我在 Chrome 中收到未指定的 DOMException,但没有任何消息。

我通过阅读规范了解了 type 的有效值是什么,特别是这个:

https://html.spec.whatwg.org/multipage/workers.html#workertype

在我看来我的代码是有效的。

作为健全性检查,我还尝试将 type 显式设置为 classic,然后 service worker 注册就可以正常进行了。如果我将它设置为一个无效值,我会得到一个 TypeError 告诉我这样,所以这不像是浏览器还不知道 type: module。它被视为一种特殊情况,它只是抛出一个没有消息的 DOMException

我是否正确使用了 type 字段?现在还为时过早,浏览器不支持它吗?

最佳答案

这是愚蠢的!当记录错误对象时,Chrome 只会将 DOMException 打印到控制台(甚至不可扩展),并且该对象实例上的 Object.keys 返回 [] ,但是当我专门打印 e.message 时,罪魁祸首就暴露了:

type 'module' in RegistrationOptions is not implemented yet.See https://crbug.com/824647 for details.

不喜欢 Chrome。

关于javascript - 在服务 worker 文件中使用 ESM(导入/导出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56953662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com