gpt4 book ai didi

javascript - importScripts(网络 worker )

转载 作者:技术小花猫 更新时间:2023-10-29 11:45:38 27 4
gpt4 key购买 nike

我曾尝试使用 importScripts 将第二个 JavaScript 文件加载到我的 Web Worker 中,但虽然没有发生错误,但它没有用。我将问题缩小到这种非常简单的情况:

在主 HTML 文件中:

<script>
var w = new Worker("script1.js");
w.addEventListener("message", function(e){
alert(e.data);
})
w.postMessage();
</script>

在 script1.js 中:

self.addEventListener("message", function(e){
var a = 5;
importScripts("script2.js");
self.postMessage(a);
})

在 script2.js 中:

a = 6

我想看到一个显示 6 的对话框,因为通过导入 script2.js 将 a 从 5 更改为 6,但是对话框显示 5。我在这里缺少什么?

最佳答案

在函数中使用var a 意味着a 将始终是私有(private)的。自 importScripts adds to the global scope , JS更喜欢在贴a的函数中访问更本地化的a。您可以改为发布 self.a,如您所料,它应该是 6。

编辑:最近有人亲自问过我这个问题,所以我做了一个演示来澄清这个行为:http://pagedemos.com/importscript/

关于javascript - importScripts(网络 worker ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16310091/

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