axiosはPromiseパッケージ要求に協力する
es 6の流行に伴い、axiosの適用が加わり、axiosはes 6のPromiseに合わせて、フロントエンドプログラマーの標準となってきた.次は、私がパッケージした簡単なリクエストです.多くの不足があって、各位の大神が惜しみなく教えて、指導することを望みます.
export const http = (info) => {
let token = sessionStorage.getItem("token")
//post , ‘application/json' , 。 , formData
axios.defaults.headers.post['Content-Type'] = 'application/json'
// , token ,
axios.defaults.headers.common["token"] = token;
let url = baseURL+info.url
let params = info.params
let method = info.method
return new Promise(function (resolve, reject) {
let promise
if (!method) {
method = 'GET'
}
if (method === 'GET') {
let dataStr = ''
if (params) { // get url , get
Object.keys(params).forEach(key => {
dataStr += key + '=' + params[key] + '&'
})
}
if (dataStr !== '') {
dataStr = dataStr.substring(0, dataStr.lastIndexOf('&'))
url = url + '?' + dataStr
}
promise = axios.get(url)
} else {
promise = axios.post(url, params)
}
promise.then(response => {
if (response.status != 200) {
return
}
//
resolve(response.data.info)
}).catch(error => {
//
reject(error)
})
})
}