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

2020-04-28 16:36:56 +08:00
 TomeWong

目前是通过 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)
        }
    }

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

971 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666984

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX