微信小程序支持 await 关键字的用法

更新日期: 2021-07-29 阅读次数: 271 字数: 264 分类: 微信小程序

使用场景

在一个微信小程序与蓝牙设备交互的场景中,我担心一次性发送过多请求导致蓝牙设备扛不住压力。 所以想每次发送间隔几十毫秒。

可读性最好的写法当然是使用 await 关键字了,否则要异步回调实现间隔性发送,代码可读性是个问题。

查了一下,微信小程序已经支持:

https://developers.weixin.qq.com/community/develop/article/doc/0008ee7efe4cf0a25799a071c5b013

看上去只要勾选了“增强编译”就可以了,不需要额外的配置。

简单测试

使用 timeout 来测试一下。

首先在 utils/util.js 中定义一个 wait 函数,作为 timeout 的封装。

function wait(ms) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(ms)
    }, ms)
  })
}

module.exports = {
  wait,
}  

然后在 pages/index/index.js 的 onLoad 中测试 await 的效果:

const util = require('../../utils/util.js');

onLoad() {
  (async () => {
    await util.wait(3000);
    console.log(1);
    await util.wait(3000);
    console.log(2);
    await util.wait(3000);
    console.log(3);
    await util.wait(3000);
    console.log(4);
  })();
},

测试效果确实符合预期,非常好。

tags: 增强编译

爱评论不评论