Web Worker 工作但在控制台中生成错误

Web Worker Works but generate error in console

我创建了一个可以正常工作的 Web Worker,但是当我打开 chrome 控制台时,我看到以下错误: 未捕获的类型错误:无法在 'Window' 上执行 'postMessage':需要 2 个参数,但只有 1 个存在。

这是实现工人的file.js。

    'use strict';

function GetSummaryAsync() {
    //$.getJSON("/api/Summary/GetSummaryAsync", function (response) {
    //    postMessage(response);
    //});
    postMessage('pippo');
}

GetSummaryAsync();
setInterval(GetSummaryAsync, 15000);

有人可以帮我解决这个错误吗?

看起来您是从 window 对象而不是 worker 调用方法(window postMessage 需要更多参数)。你是不是用浏览器打开的,而不是用 worker API?

检查 example how to run and communicate with worker

这是一个webworker将两个数字相加的例子,用类似的方法试试

worker.html

<html>
<script>
    if (window.Worker){
    
        var myWorker = new Worker("worker.js"); // create a worker object 
        var message = {addData: {num1: 1, num2 :5}};
        myWorker.postMessage(message) // send message to worker
        
        myWorker.onmessage = function(e){
            alert (e.data.result);
        }  // get the response from the worker
    
    }
    else {
        alert("your browser do not support");
    }
</script>

worker.js

this.onmessage = function(e) {
  this.postMessage({result: e.data.addData.num1 + e.data.addData.num1 })  
  // add two number and send to html file
}