玄机随录

微信小程序使用Es7的async和await

2020-01-30  本文已影响0人  简约酒馆

方案一 、增强编译 -------> 设置之后全局使用

qiang.png

方案二、选择插件 ------>注册到App.js 每次使用时都需要引用

小程序只支持Es6转Es5 尝试使用Es7的async和await将异步操作同步化 则会报错

s1.png

在js文件中使用用Es7的async和await

s3.png

控制台报错: regeneratorRuntime is not defined

s2.png

那如何使用Es7的async和await???

上述控制台报错 regeneratorRuntime 未定义,要使用 ES7 的 async / await 的话,只靠微信开发者工具中的 Babel 转换工具是不够的,它还需要额外的 Babel 插件来编译 async / await 代码,这里我们可以做如下配置。

百度搜索这样操作的 *** 这里有坑

使用npm 工具下载

  1. 引入 regenerator 包
    在自己的测试项目下npm init ======> npm install --save-dev regenerator,

然后把 node_modules 下的整个 regenerator-runtime 文件夹拷贝到项目的 pages 目录。没有说必须放在pages 下,但是必须放在当前的项目下

  1. 引入代码
    在需要用到 async / await 特性的js文件中,引入 regenerator 库
const regeneratorRuntime = require('../../pages /regenerator-runtime/runtime')

然而并没用什么用 报错:Function(...) is not a function

s4.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文件中


s6.png

使用第二种方法在全局函数注册,在其他组组件的使用方法 ====>在头部引入应用实例

s8.png

如果对你有用的话麻烦给个赞!!!

上一篇下一篇

猜你喜欢

热点阅读