promise封装axios数据请求
时间: 2023-04-16 13:03:47 浏览: 184
Promise封装axios数据请求是一种常见的前端开发技术,它可以帮助我们更好地处理异步请求,提高代码的可读性和可维护性。具体实现方式可以参考以下步骤:
1. 创建一个axios实例,并设置一些默认配置,如请求超时时间、请求头等。
2. 将axios实例封装成一个Promise对象,通过resolve和reject方法来处理请求成功和失败的情况。
3. 在封装的Promise对象中,通过axios的get、post等方法来发送请求,并将请求结果通过resolve方法返回。
4. 在调用Promise对象时,可以通过then方法来处理请求成功的情况,通过catch方法来处理请求失败的情况。
例如,下面是一个简单的Promise封装axios数据请求的示例代码:
```
import axios from 'axios'
const instance = axios.create({
timeout: 500,
headers: {
'Content-Type': 'application/json'
}
})
export const get = (url, params) => {
return new Promise((resolve, reject) => {
instance.get(url, { params })
.then(res => {
resolve(res.data)
})
.catch(err => {
reject(err)
})
})
}
export const post = (url, data) => {
return new Promise((resolve, reject) => {
instance.post(url, data)
.then(res => {
resolve(res.data)
})
.catch(err => {
reject(err)
})
})
}
```
在上面的代码中,我们通过创建一个axios实例instance,并设置了默认的请求超时时间和请求头。然后,我们分别封装了get和post方法,并在方法中使用axios的get和post方法来发送请求,并通过resolve和reject方法来处理请求成功和失败的情况。最后,我们将封装好的方法通过export导出,以便在其他地方使用。
使用时,我们可以通过以下方式来调用封装好的方法:
```
import { get, post } from './api'
get('/api/user', { id: 1 })
.then(res => {
console.log(res)
})
.catch(err => {
console.log(err)
})
post('/api/login', { username: 'admin', password: '123456' })
.then(res => {
console.log(res)
})
.catch(err => {
console.log(err)
})
```
在上面的代码中,我们分别调用了get和post方法,并通过then和catch方法来处理请求成功和失败的情况。通过这种方式,我们可以更好地处理异步请求,提高代码的可读性和可维护性。
阅读全文