正好要做一個新的小程序,所有嘗試着調整了一下目錄結構,現在我的結構是這樣曬兒的:
主要是增加了一個model目錄,這個目錄現在主要通過文件保存一些公共數據,當然可以根據習慣來,比如我就放了所有的接口(api),頁面路徑(path),封裝了一下wxrequest,環境配置。
這些文件根據頁面使用需要import到頁面內。
import api from '../../model/api.model' api.xxx //你的xxx接口名字
這里主要要說的是怎么再小程序使用async和await
1、由於async和await是基於promise的,所以呢我們首先用promise對請求進行封裝,並返回整個promise,promise只有兩種返回結果,一種是成功,一種是失敗。
function wxRequst(url, data, type) { return new Promise((resolve, reject) => { wx.request({ url: url, data: data, method: type, success: function (res) { if (res.statusCode) { resolve(res) //成功調用resolve } else { reject(res) //失敗調用reject } }, fail: function (res) { reject(res) } }) }) } export default wxRequst
2、因為小程序沒有缺少regeneratorRuntime方法,所以能我們要先下載regenerator庫,npm i regenerator 或者 點擊下載:http://nodejs999.com/regenerator-runtime.rar。下載好后把runtime文件引入要使用async的頁面就好了。
import regeneratorRuntime from '../../utils/regenerator-runtime/runtime'
現在你就可以在頁面里面愉快的像這樣使用了:
async login () { let data = { ...this.data.submitVals } let res = await wxRequest(api.login, data, 'POST') let resData = res.data if (resData.errcode == 200) { //接口成功邏輯 } else { //接口失敗的邏輯 } },