小程序如何支持使用 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 相关文章推荐
div移动 输入框不能输入的问题
Nov 19 Javascript
javascript中this做事件参数相关问题解答
Mar 17 Javascript
js onload处理html页面加载之后的事件
Oct 30 Javascript
JS动态调用方法名示例介绍
Dec 18 Javascript
关于javascript事件响应的基础语法总结(必看篇)
Dec 26 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
Jan 26 Javascript
Bootstrap实现可折叠分组侧边导航菜单
Mar 07 Javascript
vue里input根据value改变背景色的实例
Sep 29 Javascript
vue form check 表单验证的实现代码
Dec 09 Javascript
使用vue cli4.x搭建vue项目的过程详解
May 08 Javascript
javascript实现支付宝滑块验证码效果
Jul 24 Javascript
JS数据类型分类及常用判断方法
Nov 19 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 学习路线与时间表
2010/02/21 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
javascript call方法使用说明
2010/01/11 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
详解node中创建服务进程
2017/05/09 Javascript
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
详解JavaScript中的Object.is()与"==="运算符总结
2020/06/17 Javascript
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2018/02/18 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python字典一键多值实例代码分享
2019/06/14 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
华为python面试题
2016/05/03 面试题
2014年党员自我评议(5篇)
2014/09/12 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
优秀教师单行材料
2014/12/16 职场文书
自荐信格式模板
2015/03/27 职场文书
2015入党个人自传范文
2015/06/26 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android
关于的python五子棋的算法
2022/05/02 Python
springboot实现string转json json里面带数组
2022/06/16 Java/Android
MySQL索引失效场景及解决方案
2022/07/23 MySQL