收藏
回答

小程序worker机制onMessage接受消息反应速度很慢

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug worker 工具 7.0.13 2.12.0

使用官方的小程序worker机制代码片段

按道理说,只要在程序开始初期,创建一个worker,然后一直使用postMessage\onMessage就可以

但是第一次,创建worker后,postMessage\onMessage传递很快速

但是进行第二个postMessage\onMessage,onMessage迟迟接受不到输入信息

开始怀疑是SM4加密算法慢,但显然不是,还没到达SM4算法,因为onMessage接受成功后迟迟没有打印console.log("接受到的数据....")

代码如下:

const SM4 = require('./sm4');
var count = 0
// 在 Worker 线程执行上下文会全局暴露一个 worker 对象,直接调用 worker.onMeesage/postMessage 即可
worker.onMessage(function (data{
  console.log("接收到的数据......")
  var _t = this
  console.log("==【【2】】【worker已接受】==id:" + data.id )
  try {
    let res =  SM4.encrypt_sm4(data.message, data.key);
    // var res = count++
    var sendData = {
      id:data.id,
      oktrue,
      msg:res
    }
    worker.postMessage(sendData);
    console.log("==【【3】】【worker已发送回主线程】=====id:" + sendData.id)
  } catch (error) {
    var sendData = {
      id:data.id,
      okfalse,
      msg:error
    }
    worker.postMessage(sendData);
  }
})


回答关注问题邀请回答
收藏

3 个回答

  • DeepKolos
    DeepKolos
    2020-10-20

    确实十分慢,hello world发送到worker再回到主线程就270ms

    2020-10-20
    有用
    回复
  • zhm
    zhm
    2020-08-12

    你好能看一下,你这个的sm4的代码吗?我看你这个能直接使用解密后台的数据,官方给出的怎么使用

    2020-08-12
    有用
    回复
  • 灵芝
    灵芝
    2020-07-21

    你好,麻烦提供这种格式的代码片段看下(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-07-21
    有用
    回复 2
    • zhm
      zhm
      2020-08-12
      你好,官方给出的sm4怎么使用? sm4的key怎么产生?普通的后台data数据怎么转成 [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10]这种的?
      2020-08-12
      回复
    • 灵芝
      灵芝
      2020-08-12回复zhm
      请单独发帖反馈
      2020-08-12
      回复
登录 后发表内容
问题标签