实践的方式如下:
第一个问题: 虽然小程序不支持,但是我们可以引入js库啊。双手奉上facebook的开源库regenerator 下载'packages/regenerator-runtime'这个路径下的runtime.js,放到自己小程序项目下的utils或者lib文件夹下。
第二个问题: Async跟Await的用法
Async - 定义异步函数(async function someName(){...})
自动把函数转换为 Promise
当调用异步函数时,函数返回值会被 resolve 处理
异步函数内部可以使用 await
Await - 暂停异步函数的执行 (var result = await someAsyncCall();)
当使用在 Promise 前面时,await 等待 Promise 完成,并返回 Promise 的结果
await 只能和 Promise 一起使用,不能和 callback 一起使用
await 只能用在 async 函数中
import regeneratorRuntime from '../../utils/runtime.js' onLoad: function() { this.initData(); }, async initData(){ await this.initMyData();//请求接口1 await this.initTodayData();//请求接口2 } initMyData:function(){ console.log('开始请求1') ........ //回调函数的方法内写 console.log("完成请求1") } initTodayData:function(){ console.log('开始请求2') ........ //回调函数的方法内写 console.log("完成请求2") } |