代码之家  ›  专栏  ›  技术社区  ›  iJade

未能在“Worker”上执行“postMessage”:无法克隆OffscreenCanvas,因为它已分离

  •  0
  • iJade  · 技术社区  · 4 年前

    我正在尝试运行我的web worker的多个实例。但我在浏览器控制台中遇到以下错误:

    果心js:4081错误DOMEException:未能在“Worker”上执行“postMessage”:无法克隆OffscreenCanvas,因为它已分离。

    以下是角度代码:

    let htmlCanvas = <HTMLCanvasElement> document.getElementById("canvas");
    let offscreen = htmlCanvas.transferControlToOffscreen();
    for(let i = 1; i < 10; i++){
      let _worker = new Worker("./my-worker.worker", { type: 'module' }); 
      _worker.onmessage = ({ data }) => {
          console.log(data);
      };
      _worker.postMessage({canvas: offscreen, x_max : i * 100}, [offscreen]);
    }
    

    循环在浏览器控制台中出现上述错误的第二次迭代时停止。

    0 回复  |  直到 4 年前
    推荐文章