1. 程式人生 > >小程式使用 async await

小程式使用 async await

實踐的方式如下:

  • 第一個問題: 雖然小程式不支援,但是我們可以引入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前端工程師