小程序如何支持使用 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 prototype 原型链
Mar 12 Javascript
jQuery库与其他JS库冲突的解决办法
Feb 07 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
AngularJS进行性能调优的7个建议
Dec 28 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
javaScript中封装的各种写法示例(推荐)
Jul 03 Javascript
Vue2仿淘宝实现省市区三级联动
Apr 15 Javascript
vue中父子组件注意事项,传值及slot应用技巧
May 09 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 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
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python下载微信公众号相关文章
2019/02/26 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
销售自我评价
2013/10/22 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
离婚协议书范本样本
2014/08/19 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
安全承诺书
2015/01/19 职场文书
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL