大家都知道在使用promise的时候能配合async和await是非常爽的一件事,但是在原生小程序开发中默认是不可以使用async和await的,如果直接使用会报一个错误“regeneratorRuntime is not defined”,那么我们怎么样才能如何使用呢?
第一步、首先在谷歌或者百度直接搜索regeneratorRuntime,在regenerator-runtime - npm这里中的git里面去下载runtime.js(yarn add regenerator-runtime或者npm i regenerator-runtime)
第二步、将runtime.js放入utils(其他文件里也可以)中
第三步、在要用async和await的js文件中引入即可
import regeneratorRuntime from '../../utils/runtime',
// 或者:
const regeneratorRuntime = require("../../utils/runtime.js")那么还有一个很重要的问题就是async和await的作用是什么呢,我这里简单说一下自己的理解,首先现附上阮一峰老师的ES6的链接 es6.ruanyifeng.com/#docs/async,async和await号称回调地狱的终极解决方案,在async、await之后再无回调,用起来也是相当的好用,简单说就是async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。下面举一个例子
async getNavList() {
let res = await fetch('categories')
this.setData({
navList: res.data
})
}