微信小程序使用Es7的async和await
2020-01-30 本文已影响0人
简约酒馆
方案一 、增强编译 -------> 设置之后全局使用
![](https://img.haomeiwen.com/i18573776/06658d703419856f.png)
方案二、选择插件 ------>注册到App.js 每次使用时都需要引用
小程序只支持Es6转Es5 尝试使用Es7的async和await将异步操作同步化 则会报错
![](https://img.haomeiwen.com/i18573776/4a3c4bd7e25ee70a.png)
在js文件中使用用Es7的async和await
![](https://img.haomeiwen.com/i18573776/b696d1529c8723b3.png)
控制台报错: regeneratorRuntime is not defined
![](https://img.haomeiwen.com/i18573776/c888ab1a3028911c.png)
那如何使用Es7的async和await???
上述控制台报错 regeneratorRuntime 未定义,要使用 ES7 的 async / await 的话,只靠微信开发者工具中的 Babel 转换工具是不够的,它还需要额外的 Babel 插件来编译 async / await 代码,这里我们可以做如下配置。
百度搜索这样操作的 *** 这里有坑
使用npm 工具下载
- 引入 regenerator 包
在自己的测试项目下npm init ======> npm install --save-dev regenerator,
然后把 node_modules 下的整个 regenerator-runtime 文件夹拷贝到项目的 pages 目录。没有说必须放在pages 下,但是必须放在当前的项目下
- 引入代码
在需要用到 async / await 特性的js文件中,引入 regenerator 库
const regeneratorRuntime = require('../../pages /regenerator-runtime/runtime')
然而并没用什么用 报错:Function(...) is not a function
![](https://img.haomeiwen.com/i18573776/1f3d6f13c5fb3c8f.png)
其实上述npm下载的最新版本的regenerator 版本 具体下载那个版本我也忘了
我在百度网盘有备份,需要的可以通过网盘下载 regenerator-runtime 文件夹拷贝到项目的 pages 目录。没有说必须放在pages 下,但是必须放在当前的项目下
地址:https://pan.baidu.com/s/1JXZIsTAgave4GWgEbeN1Ag
使用 有两种方法
1、
在需要用到 async / await 特性的js文件中,引入 regenerator 库
const regeneratorRuntime = require('../../pages /regenerator-runtime/runtime')
2、在app.js全局函数注册,在所有组件都可以使用 regenerator-runtime文件夹我存放在utils文件中
![](https://img.haomeiwen.com/i18573776/e98037970d52ae5c.png)
使用第二种方法在全局函数注册,在其他组组件的使用方法 ====>在头部引入应用实例
![](https://img.haomeiwen.com/i18573776/0f3c7517f18ab7e3.png)
如果对你有用的话麻烦给个赞!!!