我是Java script的新手,最近了解了Web Workers,它基本上是Java Script中多线程的解决方案。在我找到的所有示例中,他们都使用了在同一个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;
}
发布于 2018-09-27 05:42:15
您可以将worker赋值给全局变量,并从任何脚本访问它
window.myWorker = new Worker('worker.js')
,您可以在其他脚本中使用
window.myWorker.postMessage('hi there')
或者,更好的是,您可以在模块中定义worker
export const worker = new Worker('worker.js')
在模块中,导入它
<script type="module">
import { worker } from './worker-module.js'
worker.postMessage('hi there')
</script>
https://stackoverflow.com/questions/52526306
复制相似问题