小程式使用 async await
阿新 • • 發佈:2018-12-16
實踐的方式如下:
-
第一個問題: 雖然小程式不支援,但是我們可以引入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")
}
複製程式碼
何永峰 廣州蘆葦科技web前端工程師