小程序如何支持使用 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面向对象编程
Mar 02 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
Mar 28 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
Jun 07 Javascript
AngularJS基础 ng-model 指令详解及示例代码
Aug 02 Javascript
jquery.zclip轻量级复制失效问题
Jan 08 Javascript
ES6入门教程之let和const命令详解
May 17 Javascript
Seajs源码详解分析
Apr 02 Javascript
深入理解vue中的slot与slot-scope
Apr 22 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 Javascript
ES6实现图片切换特效代码
Jan 14 Javascript
前端深入理解Typescript泛型概念
Mar 09 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
Apache设置虚拟WEB
2006/10/09 PHP
Windows下的PHP5.0详解
2006/11/18 PHP
php采集时被封ip的解决方法
2010/08/29 PHP
php数据库密码的找回的步骤
2011/01/12 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
js实现简易ATM功能
2020/10/27 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python字符编码判断方法分析
2016/07/01 Python
tensorflow识别自己手写数字
2018/03/14 Python
使用Python处理BAM的方法
2018/09/28 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
python 图像平移和旋转的实例
2019/01/10 Python
python从子线程中获得返回值的方法
2019/01/30 Python
什么是python类属性
2020/06/10 Python
keras topN显示,自编写代码案例
2020/07/03 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
寒山寺导游词
2015/02/03 职场文书
教师工作证明范本
2015/06/12 职场文书