gpt4 book ai didi

javascript - 是否可以从不同的java脚本文件中调用worker.postmessage和worker.onmessage,以使用一个worker.js?

转载 作者:行者123 更新时间:2023-12-03 01:03:16 31 4
gpt4 key购买 nike

我是Java脚本新手,最近了解了Web Workers,它基本上是Java脚本中多线程的解决方案。在我发现的所有示例中,他们都使用发布消息并从同一 js 文件中的 Web Worker 文件接收响应消息。我的问题是,我是否可以在一个 Java 脚本文件中开始执行 Web Worker,然后在单独的 Java 脚本文件中的另一个位置接收它的结果,如下例所示:

//start.js
function startWebWorker()
{
var message = "execute";
var myWorker = new Worker("worker.js");

myWorker.postMessage(message);
}

//worker.js
this.onmessage = function(e)
{
if (e.data == "execute")
var result ;
result = doSomething();
this.postMessage(result);

}

//receive.js

function processResult(){
var myWorker = new Worker("worker.js");
myWorker.onmessage = function(e)
document.setElementById("myresult") = e.result;

}

最佳答案

您可以将工作人员分配给全局变量并从任何脚本访问它

window.myWorker = new Worker('worker.js')

您可以使用

在其他脚本中访问它
window.myWorker.postMessage('hi there')

或者,更好的是,您可以在模块中定义工作人员

export const worker = new Worker('worker.js')

并在模块中导入它

<script type="module">
import { worker } from './worker-module.js'
worker.postMessage('hi there')
</script>

关于javascript - 是否可以从不同的java脚本文件中调用worker.postmessage和worker.onmessage,以使用一个worker.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52526306/

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