// 保存端口引用 let port /** * 接收来自主页面的初始化消息 * @param e {MessageEvent} */ self.onmessage = function initHandler(e) { const { ports = [], data } = e console.log(`Worker收到消息:`, data) // 只处理初始化消息 if (data !== 'init-worker' || ports.length === 0) { return } console.log(`Worker初始化,接收到端口:`, ports[0]) port = ports[0] // 设置定时器发送消息 setTimeout(() => { console.log(`定时器触发,开始发送消息`) port.postMessage('init-worker-success') }, 4000) // 初始化完成后,可以移除主消息监听器,改为只监听端口消息 self.onmessage = null }