小程序如何支持使用 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 年会抽奖程序
Dec 22 Javascript
SeaJS入门教程系列之完整示例(三)
Mar 03 Javascript
JS禁止查看网页源代码的实现方法
Oct 12 Javascript
vue实现添加标签demo示例代码
Jan 21 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
angular写一个列表的选择全选交互组件的示例
Jan 22 Javascript
微信小程序wepy框架笔记小结
Aug 08 Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 Javascript
react koa rematch 如何打造一套服务端渲染架子
Jun 26 Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 Javascript
vue 封装 Adminlte3组件的实现
Mar 18 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脚本的10个技巧(2)
2006/10/09 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
PHP微信支付实例解析
2016/07/22 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
2007/02/03 Javascript
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
你真的了解Python的random模块吗?
2017/12/12 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
pytorch 数据集图片显示方法
2018/07/26 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python命令行工具Click快速掌握
2019/07/04 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
python 实现任务管理清单案例
2020/04/25 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
打造高效课堂实施方案
2014/03/22 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书