建議的小程序版本的axios函數,之因此說簡易,由於只是用了經常使用的請求方法外,而後添加了攔截器而已。
具體以下:ios
npm i cdd-lib
es6:git
import {wxhttp} from 'cdd-lib'
commonjs:es6
let {wxhttp} = require('cdd-lib')
命名爲wxhttp
npm
具體的請求用法如axiosaxios
wxhttp#request(config)小程序
wxhttp#get(url[,config])promise
wxhttp#delete(url[,config])併發
wxhttp#head(url[,config])函數
wxhttp#options(url[,config])post
wxhttp#post(url[,data[,config]])
wxhttp#put(url[,data[,config]])
wxhttp#patch(url[,data[,config]])
攔截方法:
wxhttp.interceptors.request.use(handleRequest(config),handleError(err))
注意:handleRequest須要返回處理後的config
wxhttp.interceptors.response.use(handresponse(res))
注意:handleResponse須要返回處理後的res
例子:
import $http from "../../utils/http" export default { name: 'seckillHome', data() { return { } }, onShow() { // 請求攔截 $http.interceptors.request.use(function (config) { console.log(`請求攔截`, config) // 此處設置的數據將與請求的數據進行合併,若是自動同名則以攔截的爲準。 config.data = { address: "北京市東城區" } return config }) $http.post('https://www.baidu.com', { name: 'cdd', age: 23 }).then(res => { console.log(`結果是`, res) }) } }
由於使用了promise風格,因此能夠使用Promise.all方法來進行併發請求。
查看源碼