實踐的方式如下:
第一個問題: 雖然小程序不支持,但是我們可以引入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")
}
|