webWorker: 开辟子线程;

310 阅读1分钟

主线程内容:

const worker = new Worker(‘worker.js’) // 另外创建一个worker.js文件,处理子线程代码

// 发送消息给子线程
worker.postMessage({
    type: ‘add’,
    data
})

// 监听来自子线程的反馈信息
worker.addEventListener(‘message’,  e => {
    const {type , data} = e.data;
    // 处理内容
})

子线程(worker.js):

// 子线程监听信息
onmessage = (res) => {
    const {type ,data} = res.data
    
    // 回馈消息给主线程
    postmessage({
        type: ‘add’,
        data
    })

    // 使用完成关闭子线程,性能优化
    // 需要重复使用时注意判断关闭条件,否则关闭之后不再接受下次监听;
    self.close();
}