小程序如何支持使用 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 相关文章推荐
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
Aug 18 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
Dec 09 Javascript
使用伪命名空间封装保护独自创建的对象方法
Aug 04 Javascript
JS简单实现自定义右键菜单实例
May 31 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
get  post jsonp三种数据交互形式实例详解
Aug 25 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
Sep 08 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
May 17 Javascript
layui 地区三级联动 form select 渲染的实例
Sep 27 Javascript
JS自定义滚动条效果
Mar 13 Javascript
微信小程序实现日历小功能
Nov 18 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
对python的输出和输出格式详解
2018/12/08 Python
Python高斯消除矩阵
2019/01/02 Python
对python生成业务报表的实例详解
2019/02/03 Python
python实现手机销售管理系统
2019/03/19 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
家长会主持词
2014/03/26 职场文书
产品调价通知函
2015/04/20 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis