首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyodide: ReferenceError: SharedArrayBuffer未定义

Pyodide: ReferenceError: SharedArrayBuffer未定义
EN

Stack Overflow用户
提问于 2021-08-06 09:38:29
回答 1查看 325关注 0票数 1

我正在开发我的最后一年的项目。开发基于浏览器的集成开发环境。我正在使用Pyodide进行编译。它以前工作得很好,但是当我现在尝试运行这个项目时,我遇到了一个关于SHaredArrayBuffer()的错误。我不知道是什么导致了这个问题。请各位帮帮我,我的最后一年的演讲是在下周三,我的项目不能正常工作。

这就是我使用它的地方。

代码语言:javascript
复制
readline: () => {
            let sab = new SharedArrayBuffer(2048)
            let sab_int32 = new Int32Array(sab)
            let sab_uint8 = new Uint8Array(sab)

            send('STDIN', sab)

            Atomics.wait(sab_int32, 0, 0)

            let str_len = sab_int32[0]
            let str_uint8 = sab_uint8.slice(4, 4 + str_len)

            return new TextDecoder().decode(str_uint8) + '\n'
        },

至少有其他方法可以做到这一点吗?是的,我正在使用web-worker。我在Edge、Firefox和Mozilla上遇到了这个错误。

ReferenceError: SharedArrayBuffer is not defined

我在本地主机上的网站上运行。是因为我的网站没有认证吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-07 15:15:44

从Chrome92和火狐开始,出于安全原因,SharedArrayBuffer默认是禁用的。Safari很久以前就不再支持它了。原因如下:https://developer.chrome.com/blog/enabling-shared-array-buffer/

要使用它,您需要通过发送一些HTTP头来启用跨域隔离。还有一些额外的要求。你可以在这里了解更多信息:https://web.dev/coop-coep/

一种快速的逃生方法是在Chrome中注册一个原始试验。https://developer.chrome.com/blog/enabling-shared-array-buffer/#origin-trial

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68679432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档