创建worker对象,引入js ,第二个参数可以给当前取个名字,区别其他worker
var worker = new Worker('uploadWorker.js',{name:'update"});
// 向worker中发送数据
worker.postMessage({fileList: this.modelForm.fileList}); // 这里是传递了一组文件对象
通过worker.onmessage 接受回传uploadWorker.js的消息
worker.onmessage =function(evt){
console.log(evt)
}
在uploadWorker.js中这样接收:
通过onmessage 事件
onmessage = function (event) {
//在worker中使用js插件,直接通过importScripts方法引入文件,值得注意的是,插件一般都使用的是window对象,在
//worker中没有不能访问window, worker有自己定义的全局对象self, 因此想要在worker中使用插件,需要将相应文件中 // window替换成self
importScripts('spark-md5.min.js'); // 使用插件 这里使用了一个将文件转为MD5的js插件
var spark = new SparkMD5.ArrayBuffer(),
fileReader = new FileReader();
fileReader.onload = function (e) {
// 当 FileReader 读取文件时候,读取的结果会放在 FileReader.result 属性中
spark.append(e.target.result)
console.log(spark.end());
}
fileReader.readAsArrayBuffer(event.data.fileList[0]); // 将文件读取为二进制流,然后通过SparkMD5转md5
// setInterval(()=>{
// doSomething()
// },1000)
}
function doSomething() {
// 执行任务
postMessage('Work done!');
}
571

被折叠的 条评论
为什么被折叠?



