小程序如何支持使用 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 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
JavaScript的目的分析
Jan 05 Javascript
ExtJs 表单提交登陆实现代码
Aug 19 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
Jan 24 Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 Javascript
jQuery.each使用详解
Jul 07 Javascript
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
详解a标签添加onclick事件的几种方式
Mar 29 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
May 02 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
May 27 Javascript
JS中多层次排序算法的实现代码
Jan 06 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
无线电的诞生过程
2021/03/01 无线电
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
php获取apk包信息的方法
2014/08/15 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
javascript 写类方式之七
2009/07/05 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
2017/02/23 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
python关键字and和or用法实例
2015/05/28 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
Python实现登陆文件验证方法
2018/10/06 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
PyQt5实现简单的计算器
2020/05/30 Python
python numpy库np.percentile用法说明
2020/06/08 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
环境工程专业自荐信范文
2014/03/18 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
教育实习指导教师评语
2014/12/31 职场文书
廉政承诺书2015
2015/04/28 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
基于python的matplotlib制作双Y轴图
2021/04/20 Python
golang 实现两个结构体复制字段
2021/04/28 Golang