// utils/utils.js
/** 小程序
* requestPromise用於將wx.request改寫成Promise方式 promise
* @param:{string} myUrl 接口地址 框架
* @return: Promise實例對象 異步
*/ 函數
const requestPromise = myUrl => { // 返回一個Promise實例對象 return new Promise((resolve, reject) => { wx.request({ url: myUrl, success: res => resolve(res) }) }) } module.exports = { requestPromise: requestPromise } // pages/test/test.js // 導入util.js文件 const utilApi = require('../../utils/util.js') Page({ data: { myData: '' }, // loadMyData函數用於打印myData的值 loadMyData() { console.log('獲取到的數據爲:' + this.data.myData) }, // 生命週期函數onload用於監聽頁面加載 onLoad: function() { utilApi.requestPromise('http://172.20.10.10:8080/wx?name=小明&oaid=xiaoming') // 使用.then處理結果 .then(res => { console.log(res.data) this.setData({ myData: res.data }) console.log(this.data.myData) this.loadMyData() }) } })
當有多個異步請求時,直接不斷地.then(fn)去處理便可,邏輯清晰。ui
固然,這裏只是寫了一個最簡單的Promise函數,還不完整。更完整的Promise化wx.request,等之後業務須要再完善吧。另外各類小程序開發框架也都有了現成的promise化API,拿來即用。this