我创建了一个可以正常工作的 Web Worker,但是当我打开 chrome 控制台时,我看到以下错误: 未捕获的类型错误:无法在“窗口”上执行“postMessage”:需要 2 个参数,但仅存在 1 个。
这是实现worker的file.js。
'use strict';
function GetSummaryAsync() {
//$.getJSON("/api/Summary/GetSummaryAsync", function (response) {
// postMessage(response);
//});
postMessage('pippo');
}
GetSummaryAsync();
setInterval(GetSummaryAsync, 15000);
有人可以帮我解决这个错误吗?
最佳答案
这是一个 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
}
关于javascript - Web Worker 可以工作,但在控制台中生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185322/