0.0.9 • Published 3 years ago

@krabby/axios v0.0.9

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago
  • 带中间件的axios,在axios基础上添加before、success、error三个中间件
  • 使用
import axios from '@krabby/axios'

function before(config) {
    console.log("before")
    return config
}

function success(res) {
    console.log("success")
    let { data } = res || {}
    return data
}

function error(err) {
    console.log("error")
    return err
}

const app = axios.create(
    { before, success, error }
)

app.get('http://baidu.com')

每次请求依次挂载请求前、成功、失败三个钩子,用于自定义返回体、token处理、全局loading等等

如有自定义情况,则在请求时也可指定此三个钩子,此时会替换掉默认钩子

function cuError(err) {
    console.log("cuError")
    return 1
}

app.get('http://baidu.com',{error:cuError})

同时支持数组类型中间件传入,同步方法依次执行,异步方法并行执行

async function cuSuccess1(res) {
    console.log("cuSuccess1")
    return "ok1"
}


async function cuSuccess2(res) {
    console.log("cuSuccess2")
    return "ok2"
}
app.get("http://baidu.com", {success:[cuSuccess1,cuSuccess2]})

以下是完整的demo

import axios,{TAxiosRequestConfig,AxiosResponse, AxiosError} from '@krabby/axios'


function before(config) {
    console.log("before")
    return config
}

function success(res) {
    console.log("success")
    let { data } = res || {}
    return data
}

function error(err) {
    console.log("error")
    return err
}

function cuBefore(config) {
    console.log("cuBefore")
    config.url = "http://baidu.com"
    return config
}


function cuSuccess(res) {
    console.log("cuSuccess")
    return "ok"
}


async function cuSuccess1(res) {
    console.log("cuSuccess1")
    return "ok1"
}


async function cuSuccess2(res) {
    console.log("cuSuccess2")
    return "ok2"
}

function cuError(err) {
    console.log("cuError")
    throw new Error(err.message)
}
function cuError1(err) {
    console.log("cuError1")
}
function cuError2(err) {
    console.log("cuError2")
}

const app = axios.create(
    { before, success, error }
)

async function test() {
    console.debug("\r\n------默认正确返回")
    await app.get("http://baidu.com", {})
    
    console.debug("\r\n------默认错误返回")
    await app.get("http://baidu.co", {})
    const config = { success: cuSuccess, error: cuError }

    console.debug("\r\n------自定义正确返回")
    let data = await app.get("http://baidu.com", config)
    console.info("data",data)

    console.debug("\r\n------自定义错误返回(不阻塞)")
    await app.get("http://baidu.co", {before:cuBefore})

    console.debug("\r\n------自定义错误返回(不阻塞顺序执行正确)")
    data = await app.get("http://baidu.com", {success:[cuSuccess1,cuSuccess2]})
    console.info("data",data)

    console.debug("\r\n------自定义错误返回(不阻塞顺序执行错误)")
    await app.get("http://baidu.co", {error:[cuError1,cuError2]})

    console.debug("\r\n------自定义错误返回(阻塞)")
    await app.get("http://baidu.co", config)
}

test()
0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago