javascript worker 的使用

创建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!');

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值