小程序如何支持使用 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 dom 操作详解 js加强
Jul 13 Javascript
js 刷新页面的代码小结 推荐
Apr 02 Javascript
javascript整除实现代码
Nov 23 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
Nov 01 Javascript
浅谈addEventListener和attachEvent的区别
Jul 14 Javascript
JS实现两周内自动登录功能
Mar 23 Javascript
vue复合组件实现注册表单功能
Nov 06 Javascript
javascript少儿编程关于返回值的函数内容
May 27 Javascript
详解Vue之父子组件传值
Apr 01 Javascript
vue 解决异步数据更新问题
Oct 29 Javascript
JS中==、===你分清楚了吗
Mar 04 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
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
PHP基础学习小结
2011/04/17 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php session的锁和并发
2016/01/22 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
一些mootools的学习资源
2010/02/07 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
python 列表降维的实例讲解
2018/06/28 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
经济学人订阅:The Economist
2018/07/19 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
委托书范文
2014/04/02 职场文书
合作协议书范文
2014/08/20 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书