postMessage方法是用于在Web Worker和主線程之間進行通信的方法。它接受兩個參數:message和transferList。
message:要發送的消息,可以是任意類型的數據。
transferList:可選參數,用于指定要傳輸的資源(如ArrayBuffer對象)。
在主線程中,可以通過worker.postMessage(message, transferList)方法向Web Worker發送消息。
在Web Worker中,可以通過self.postMessage(message, transferList)方法向主線程發送消息。
示例:
在主線程中向Web Worker發送消息:
var worker = new Worker('worker.js');
worker.postMessage('Hello');
// 或者發送帶有資源的消息
var buffer = new ArrayBuffer(16);
worker.postMessage({ data: buffer }, [buffer]);
在Web Worker中向主線程發送消息:
self.postMessage('Hello');
// 或者發送帶有資源的消息
var buffer = new ArrayBuffer(16);
self.postMessage({ data: buffer }, [buffer]);
在主線程中監聽Web Worker發送的消息:
var worker = new Worker('worker.js');
worker.onmessage = function(event) {
console.log('Received message from worker:', event.data);
};
在Web Worker中監聽主線程發送的消息:
self.onmessage = function(event) {
console.log('Received message from main thread:', event.data);
};