Cba工作人员招聘:importScripts(Web工作人员 )

我已经尝试使用 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,因为 a 通过导入 script2.js 从 5 更改为 6,但对话框显示 5。

50

在函数中使用var a意味着a将始终是私有的。由于importScripts adds to the global scope,JS 更喜欢访问发布a的函数中更本地化的a。您可以按预期发布self.a

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

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(179)
束缚gl:“MapboxGLJS”中的GL代表什么
上一篇
产地代码:如何在基板托盘中使用原产地值
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(26条)