• 请不要在回答技术问题时复制粘贴 AI 生成的内容
TomeWong
V2EX  ›  程序员

Electron: web worker 批量上传文件,如何将 web woker 信息实时回传至 worker 主进程

  •  
  •   TomeWong · Apr 28, 2020 · 1629 views
    This topic created in 2233 days ago, the information mentioned may be changed or developed.

    目前是通过 postMessage 回传变化的信息,需要显示上传的进度,在 web worker 子进程中,如果上传的信息和状态

    发生了变化,就会实时将这部分信息通过 postMessage 回传至 worker 主进程,同时通过 vuex dispatch 将这部

    分上传进度信息更新至进度条更新组件中,但由于使用的是 dispatch 异步的,即使使用 await 仍然没有用,导致

    web worker 中上传都完成了,显示进度条的列表仍未收到上传进度更新的信息

        worker.onmessage = async event => {
            const { uuid, md5, taskDataArr, completeStatus } = event.data
            if(completeStatus.status === 'updateStore') {
                await store.dispatch('task/addMultiTaskUL', taskDataArr)
            } else if(completeStatus.status === 'updateTaskUL') {
                await store.dispatchPromise('task/updateTaskUL', { uuid, md5 })
            } else if(completeStatus.status === 'failTaskUL') {
                await store.dispatch('task/failTaskUL', uuid)
            } else {
                await store.dispatch('task/completeTaskUL', uuid)
            }
        }
    

    各位大佬有遇到这种问题么?

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5457 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 01:28 · PVG 09:28 · LAX 18:28 · JFK 21:28
    ♥ Do have faith in what you're doing.