目前是通过 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)
}
}
各位大佬有遇到这种问题么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.