DOMException:无法在'Worker'上执行'postMessage':function hooks(){return hookCallback.apply(null,arguments); }无法克隆

时间:2018-10-18 23:06:29

标签: javascript reactjs web-worker

我正在尝试在Web Worker中的React应用上并行运行代码。但是我遇到了一个我不完全理解的错误。

worker.js

const workercode = () => {
  self.onmessage = function (e) {
    console.log('ONM');
    if (e.data.evalInContext) {
      console.log('TRYING');
      const { $eval, context, moment } = e.data.evalInContext;
      // const ret = (new Function(`with(this) { return ${$eval}}`)).call({ moment, ...context });

      this.postMessage({
        result: []
      });
    }
  };
};

let code = workercode.toString();
code = code.substring(code.indexOf('{') + 1, code.lastIndexOf('}'));

const blob = new Blob([code], { type: 'application/javascript' });
const worker_script = URL.createObjectURL(blob);

module.exports = worker_script;

module.js

window.ws = worker_script;
const worker = new Worker(worker_script);
worker.onmessage = function (e) {
  console.log('AN E HAPPENED ', e);
};


....later in a function

  worker.postMessage(message);

^^^^^引发错误

获取

Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Worker': function hooks () {
        return hookCallback.apply(null, arguments);
    } could not be cloned.
    at eval

0 个答案:

没有答案