小程序如何支持使用 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 相关文章推荐
node.js中的events.emitter.once方法使用说明
Dec 10 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
jquery插件Jplayer使用方法简析
Apr 22 Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 Javascript
vue实现底部菜单功能
Jul 24 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
Dec 06 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
layui 地区三级联动 form select 渲染的实例
Sep 27 Javascript
javascript实现京东登录显示隐藏密码
Aug 02 Javascript
vue+iview实现分页及查询功能
Nov 17 Vue.js
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
jquery each()源代码
2011/02/14 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
大学生毕业的自我评价分享
2014/01/02 职场文书
单位绩效考核方案
2014/05/11 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
小学教育见习报告
2014/10/31 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
基于Go语言构建RESTful API服务
2021/07/25 Golang