小程序如何支持使用 async/await详解


Posted in Javascript onSeptember 12, 2019

前言

小程序本身是不支持async/await语法的,但有些应用场景,我们使用async/await会使得代码更简洁,也更易于维护,用过都知道是有多爽的。既然小程序不支持,那我们可以借助 fackbook 开源的 regenerator 来完成这一功能。 前面我也百度过一些方法,但很多方法都行不通,只能从其中找到一些线索,再加上实践来验证,最后在这里记录下成功的解决方法。

准备工作

1. 小程序目录下,新建一个packpage.json,通过命令行执行 npm init -y 可以快速创建

2. 安装 regenerator-runtime,命令行执行 npm i regenerator-runtime

3. 打开小程序开发者工具,点击右上角的工具选项,点击构建npm,稍等几秒,小程序目录下会出现 miniprogram_npm 文件夹,里面存放的就是构建完成的npm包

4. 开发者工具右上角 本地设置 勾选 使用npm模块

小程序如何支持使用 async/await详解

npm构建参考文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html

如何使用

引入 regenerator-runtime

import regeneratorRuntime from 'regenerator-runtime'

小程序如何支持使用 async/await详解

引入的名字必须是 regeneratorRuntime ,这个不是自定义的,必须就是这个名字!

然后就可以正常使用 async/await

小程序如何支持使用 async/await详解

最后

完成上面的步骤后,我在使用时会报一个错误

小程序如何支持使用 async/await详解

后面发现需要删除 regenerator-runtime 文件中一些源码后,才能正常使用。(不知道是哪里出了问题,假如你们在使用时出现这个错误,再参考下面的解决方法)

进入 miniprogram_npm/regenerator-runtime/index.js,大约730行处

小程序如何支持使用 async/await详解

删除 Function("r", "regeneratorRuntime = r")(runtime) 即可

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
封装的原生javascript弹出层代码
Sep 24 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 Javascript
Jquery常用的方法汇总
Sep 01 Javascript
jquery+css3实现会动的小圆圈效果
Jan 27 Javascript
JavaScript——DOM操作——Window.document对象详解
Jul 14 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
Feb 21 Javascript
vue子父组件通信的实现代码
Jul 09 Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
详解如何在Javascript中使用Object.freeze()
Oct 18 Javascript
vue print.js打印支持Echarts图表操作
Nov 13 Javascript
layui清空,重置表单数据的实例
Sep 12 #Javascript
layui table 多行删除(id获取)的方法
Sep 12 #Javascript
详解Vue中CSS样式穿透问题
Sep 12 #Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
Sep 12 #Javascript
微信小程序之 catalog 切换实现解析
Sep 12 #Javascript
layui实现checkbox的目录树tree的例子
Sep 12 #Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 #Javascript
You might like
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
Vue中$refs的用法详解
2018/06/24 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
python追加元素到列表的方法
2015/07/28 Python
实例Python处理XML文件的方法
2015/08/31 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
一套Delphi的笔试题二
2013/05/11 面试题
《掌声》教学反思
2014/02/23 职场文书
国际金融专业自荐信
2014/07/05 职场文书
清洁工岗位职责
2015/02/13 职场文书
让生命充满爱观后感
2015/06/08 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
Oracle使用别名的好处
2022/04/19 Oracle