promise封裝wx.request的方法
上篇文章給大傢介紹瞭使用Promise封裝小程序wx.request的實現方法,本文重點給大傢介紹promise封裝wx.request的方法,具體內容如下所示:
為什麼要封裝wx.request?
因為我們請求接口時,有時候會請求一個接口的多個api,如果沒有使用封裝,那麼我們編寫代碼會變得繁瑣,並且也會導致性能問題。
封裝的話,利於我們編寫,並且提高用戶體驗和便於代碼的修改。
對於封裝的選擇為什麼使用promise?
當我們進行微信小程序的編寫時,寫到wx.request的時候,我想大傢一定不陌生這種寫法,和$.ajax的寫法有相似之處。我們對於$.ajax的封裝,想必大傢並不陌生,這也就不難讓我們聯想到promise瞭。並且我們的微信小程序是支持es6語法,那promise就是一個好得封裝選擇。
該怎麼封裝wx.request?
我們找好瞭封裝的理由和工具,那接下來就是針對wx.request這個棘手的東西進行封裝瞭,首先在我們的開發工具中創建好文件
我們用一個大的文件夾將其包裹,在將內容分部處理
首先呢,在我們的fetch.js文件中,我們用promise來對wx.request進行封裝:
//promise封裝wx.request module.exports=(url,data,method)=>{ //先定義promise let promise=new Promise((resolve,reject)=>{ wx.request({ url:url, data:data, method:method, //成功時執行 success(res){ resolve(res) }, //失敗時執行 fail(err){ reject(err) }, }) }) //將promise推出去 return promise }
然後,在我們的api.js文件中,我們可以將所需要請求的東西都放在這裡,方便統一管理:
//接口的管理 module.exports={ "banner":"/h8/home/multidata" }
最後,在我們的http.js文件中,將其集中起來使用:
//引入文件 const api=require("./api") const fetch=require("./fetch") //定義路徑 let baseUrl="http://123.207.32.32:8000/api" //導出內容 function banner(){ return fetch(baseUrl+api.banner,{},'get') } module.exports={ banner }
封裝好以後,我們需在全局app.js中引入才可使用:
const http=require('./http/http.js') App({ http, })
在文件中使用:
//引入app const app=getApp() Page({ data: { list:[] } onLoad: function () { app.http.banner().then(res)=>{ this.setData({ list:res.data.data.banner.list }) } }
到此這篇關於promise封裝wx.request的方法的文章就介紹到這瞭,更多相關promise封裝wx.request內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 淺析Promise的介紹及基本用法
- 徹底搞懂 javascript的Promise
- vue中Promise的使用方法詳情
- 前端JavaScript之Promise
- 微信小程序如何處理token過期問題