jshttp
Version:
基于 Axios 的 HTTP 请求库,内置了一些常用功能,支持在任何 Javascript 环境下运行
37 lines (31 loc) • 1.08 kB
JavaScript
const { settle, createError } = require('../axios-modules')
const statuses = require('../static/statuses')
const getUrl = require('../core/get-url')
module.exports = function wxMiniprogramAdapter(config) {
const url = getUrl(config.baseURL, config.url, config.params)
return new Promise(function dispatchWxMiniprogramRequest(resolve, reject) {
let request = wx.request({
url: url,
data: config.data,
header: config.headers,
timeout: typeof config.timeout === 'number' && config.timeout > 0 ? config.timeout : undefined,
method: config.method.toUpperCase(),
success(res) {
const response = {
data: res.data,
status: res.statusCode,
statusText: statuses[res.statusCode] || 'UnKnown',
headers: res.header,
config,
request,
}
settle(resolve, reject, response)
},
fail() {
reject(createError('Network Error', config, null, request))
request = null
},
})
})
}