微信小程序封裝http請求---(promise)
在頂級app.js中添加全局url地址
封裝方法
/**
? * 封裝wx.request請求
? * method: 請求方式
? * url: 請求地址
? * data: 要傳遞的參數(shù)
? * cookie : 請求token
? * callback: 請求成功回調(diào)函數(shù)
? * errFun: 請求失敗回調(diào)函數(shù)
? * 以對象方式進行傳參
? **/
? wxRequest({method, url, cookie, data, callback, errFun}) {
? ? return new Promise((resove, reject) => {
? ? ? wx.request({
? ? ? ? url: url,
? ? ? ? method: method,
? ? ? ? data: data,
? ? ? ? header: {? ? ? ?// 定義請求頭
? ? ? ? ? 'content-type': method == 'GET' ? 'application/json' : 'application/x-www-form-urlencoded',
? ? ? ? ? 'Cookie': cookie
? ? ? ? },
? ? ? ? dataType: 'json',
? ? ? ? success: function (res) {
? ? ? ? ? ? // 這里可以做請求攔截
? ? ? ? ? ?callback(res)
? ? ? ? },
? ? ? ? fail: function (err) {
? ? ? ? ? reject(err);
? ? ? ? }
? ? ? })
? ? })
OK! 方法封裝完畢!我們就可以用原生promise的方法來獲取請求回來的數(shù)據(jù)啦!就不用再去使用微信小程序的success來獲取成功的數(shù)據(jù)。
在其他頁面調(diào)用app.js方法:
// 頁面開始? 先獲取應(yīng)用實例
const app = getApp()
// 在需要的函數(shù)內(nèi)部進行函數(shù)的調(diào)用
搞定!這樣封裝一下用回到熟悉的axios的寫法,就可以用到我們的async 、await 來解決異步。
求各位大佬多多指教!