promise之拦截器

830 阅读1分钟
const request = axios.create(
    baseURL: 'http://localhost:8080',
    timeout: 1000, //超时时间,单位:ms
    headers: {
        token: '234453535345'
    }
)

//请求拦截器:在发送请求之前执行
request.interceptors.request.use(
    config => {
        console.log('请求拦截器')
        console.log('config',config)
        return config
    },
    error => {
        return Promise.reject(error)
    },
)

//响应拦截器:在接收响应后,做一些处理,再返回给前端
request.interceptors.response.use(
    response => {
        console.log('后置处理器')
        console.log('response',response)        return response
    },
    error => {
        return Promise.reject(error)
    },
)

request.get('/user/list')
.then(data => {
    console.log("获取数据:",data.data)

})
.catch(error => {
    console.log('获取数据失败')
    return Promise.reject(error)
})

在开发的时候调用后台前需要做一些事情可以在前置拦截器内做,例如把token放header里;

在后台返回的数据有可能需要调用下某个对象后才能获取到数据,可以在后置拦截器内处理。

反正它们的执行时机是这样,根据你的需求可以做响应处理的。