【发布时间】:2019-10-29 16:08:08
【问题描述】:
我需要使用网络工作者打开一个单独的线程并执行一些繁重的 CPU 任务。
我需要给网络工作者一个函数调用和参数,然后得到返回,所以我选择了:
funcs.js
export default function add(args) {
return args[0] + args[1];
}
main.js
import add from './funcs.js';
// [...]
this.worker.postMessage({func: add, args: [7, 3]});
然后运行时错误:
DataCloneError:无法在Worker上执行postMessage:function add(args) { return args[0] + args[1]; }无法克隆。
似乎worker.postMessage 方法只允许传递字符串,
知道如何简单优雅地解决这个问题吗?
【问题讨论】:
标签: javascript web-worker