0.0.1 • Published 3 years ago

axios-for-alipay v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

axios-for-alipay

Axios 小程序版本

API 文档

  • 使用方法
npm i axios-for-alipay

支付宝小程序灰度测试中,在 IDE 中进行安装后直接引入即可。

在 App.js 中

const { axios } = require('axios-for-alipay')

my.axios = axios() // 必须调用 axios 才能实例化成功

在其他页面中

Page({
  onLoad(options) {
    my.axios.get('xxxxx').then(res => {
      console.log(res)
    }).catch(err => {
      console.log(err)
    })
  }
})

全局配置列表

参数名类型默认值说明
loadingString'Loading...'my.showLoading 的 titile, 存在此项则会开启请求 Loading
baseUrlString''my.request 中 url 的前缀拼接,作用和 axios.js 中 baseURL 一样
loadingAwaitNumber800(ms)即如果开启 Loading 后,必须接口请求的 pendding 时间大于该时间才会显示 Loading,以获得更好的用户体验
loadingMaskBooleantruemy.showLoading 的 mask 属性,控制遮罩层
timeoutNumber0my.request 的 timeout 属性,代表接口超时时间,0 代表不设置
const { axios } = require('axios-for-alipay')

my.axios = axios({
  timeout: 30000,
  loadingAwait: 800
})

方法列表

axios.get

使用方法基本同 axios.js 中的 get 方法

my.axios.get(url[, data[, config]])
参数名类型默认值说明
urlString''API 地址, 即 my.request 的 url,注意,该属性会拼接全局设置的 baseUrl,同时,如果 opt 中设置了 baseUrl, 则以 opt 中为准
dataObject{}my.request 中的 data,无论何种形式的请求,请保证请求体均为一个对象
configObject{}接口独享的额外配置参数,和 axios.js 一样,优先级最高,最终会被合并进 my.request 中

axios.post

使用方法基本同 axios.js 中的 post 方法

my.axios.post(url[, data[, config]])
参数名类型默认值说明
urlString''API 地址, 即 my.request 的 url,注意,该属性会拼接全局设置的 baseUrl,同时,如果 opt 中设置了 baseUrl, 则以 opt 中为准
dataObject{}my.request 中的 data,无论何种形式的请求,请保证请求体均为一个对象
configObject{}接口独享的额外配置参数,和 axios.js 一样,优先级最高,最终会被合并进 my.request 中

axios.delete

使用方法基本同 axios.js 中的 delete 方法

my.axios.delete(url[, config])
参数名类型默认值说明
urlString''API 地址, 即 my.request 的 url,注意,该属性会拼接全局设置的 baseUrl,同时,如果 opt 中设置了 baseUrl, 则以 opt 中为准
configObject{}接口独享的额外配置参数,和 axios.js 一样,优先级最高,最终会被合并进 my.request 中

axios.options

使用方法基本同 axios.js 中的 options 方法

my.axios.options(url[, config])
参数名类型默认值说明
urlString''API 地址, 即 my.request 的 url,注意,该属性会拼接全局设置的 baseUrl,同时,如果 opt 中设置了 baseUrl, 则以 opt 中为准
configObject{}接口独享的额外配置参数,和 axios.js 一样,优先级最高,最终会被合并进 my.request 中

axios.head

使用方法基本同 axios.js 中的 head 方法

my.axios.head(url[, config])
参数名类型默认值说明
urlString''API 地址, 即 my.request 的 url,注意,该属性会拼接全局设置的 baseUrl,同时,如果 opt 中设置了 baseUrl, 则以 opt 中为准
configObject{}接口独享的额外配置参数,和 axios.js 一样,优先级最高,最终会被合并进 my.request 中

axios.put

使用方法基本同 axios.js 中的 put 方法

my.axios.put(url[, data[, config]])
参数名类型默认值说明
urlString''API 地址, 即 my.request 的 url,注意,该属性会拼接全局设置的 baseUrl,同时,如果 opt 中设置了 baseUrl, 则以 opt 中为准
dataObject{}my.request 中的 data,无论何种形式的请求,请保证请求体均为一个对象
configObject{}接口独享的额外配置参数,和 axios.js 一样,优先级最高,最终会被合并进 my.request 中

axios.all

执行并发请求,全部请求成功才会进入成功的回调,有任何一个错误均会进入 catch 回调

let v1 = my.axios.get(api1)
let v2 = my.axios.get(api2)
my.axios.all([v1, v2]).then(([r1, r2]) => {
  console.log(r1, r2)
})

原理为 Promise.all

具体可以参考 axios.js 文档

axios.race

执行并发请求,任何一个请求返回后就会进入成功的回调

即无论有多少个请求发出,只会收到第一个返回成功的请求,其他请求返回结果全部丢弃

let v1 = my.axios.get(api1)
let v2 = my.axios.get(api2)
my.axios.all([v1, v2]).then(([r]) => {
  console.log(r1)
})

原理为 Promise.race

具体可以参考 axios.js 文档

axios.spread

并发请求中使用,对返回结果进行展开,具体可以参考 axios.js 文档

let v1 = my.axios.get(api1)
let v2 = my.axios.get(api2)
my.axios.all([v1, v2]).then(my.axios.spread((r1, r2) => {
  console.log(r1, r2)
}))

拦截器 interceptors

分为 request 和 response 拦截器

使用方法和 axios.js 拦截器完全一样,具体可以参考 axios.js