在使用的時候,每次請求都寫一大串代碼,特別不爽,因此,我們可以借助 ES6 的 promise 將 wx.request 封裝為異步調用函數,避免回調地獄。
具體封裝如下 :
```js
class Request {
constructor (parms) {
this.withBaseURL = parms.withBaseURL
this.baseURL = parms.baseURL
}
get (url, data) {
return this.request('GET', url, data)
}
post (url, data) {
return this.request('POST', url, data)
}
put (url, data) {
return this.request('PUT', url, data)
}
request (method, url, data) {
const vm = this
return new Promise((resolve, reject) => {
wx.request({
url: vm.withBaseURL ? vm.baseURL + url : url,
data,
method,
success (res) {
resolve(res)
},
fail () {
reject({
msg: '請求失敗',
url: vm.withBaseURL ? vm.baseURL + url : url,
method,
data
})
}
})
})
}
}
const request = new Request({
baseURL: 'http://test',
withBaseURL: true
})
module.exports = request
```
使用的時候:
```js
const libs = require('../../libs/index')
libs.request.get('/aaa', {
a: 0,
b: 1
}).then(res => {
console.log(res)
}).catch(e => {
console.log(e)
})
```
- 簡介
- 第一章 公眾號開發
- 使用微信JSSDK
- 接口權限配置
- 分享接口
- 隱藏按鈕項
- 微信支付
- 第二章 小程序開發
- 基礎知識
- 分包加載
- WXSS樣式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 邏輯層
- app.js
- 場景值
- page.js
- 初始化數據
- 生命周期函數
- 頁面相關事件處理函數
- 事件處理函數
- 頁面實例方法
- 路由
- 文件作用域
- 模塊化
- 視圖層
- 模板語法
- 列表渲染
- 條件渲染
- 模板
- 事件
- 引用
- WXS語法規范
- WXS數據類型
- WXS控制流程
- WXS基礎類庫
- 組件
- 視圖容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基礎組件
- icon
- text
- rich-text
- progress
- 表單組件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 導航組件
- navigator
- 媒體組件
- audio
- image
- video
- camera
- 地圖組件
- map
- 畫布組件
- canvas
- 開放能力
- web-view
- 自定義組件
- 組件模版和樣式
- Component
- 組件傳值
- 組件事件
- Behaviors
- 組件間關系
- 網絡請求
- wx.request
- 微信登錄
- 獲取 openid 和 unionid
- 獲取用戶信息
- 將 wx.request 封裝為 promise
- 上傳圖片接口封裝
- 數據存儲
- 存儲數據和讀取數據
- 獲取數據緩存信息
- 移除數據緩存
- 獲取用戶設置
- openSetting
- getSetting
- 第三章 小游戲開發
- 參考資料