promise封装axios请求
时间: 2023-08-20 13:04:45 浏览: 101
当我们使用Promise来封装axios请求时,我们可以使用axios的interceptor来处理请求和响应,并返回一个Promise对象。
下面是一个简单的示例:
```javascript
import axios from 'axios';
// 创建一个axios实例
const instance = axios.create({
baseURL: 'https://api.example.com',
timeout: 5000,
});
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做一些处理,例如添加请求头等
return confi
相关问题
如何用promise封装axios请求
可以使用以下代码将axios请求封装成Promise:
```javascript
function axiosPromise(config) {
return new Promise((resolve, reject) => {
axios(config)
.then((response) => {
resolve(response.data);
})
.catch((error) => {
reject(error);
});
});
}
```
其中,`config`参数为axios请求的配置项,可以包含如下属性:
- `url`:请求的URL地址
- `method`:请求的HTTP方法,如GET、POST等
- `params`:GET请求的参数
- `data`:POST请求的参数
- `headers`:请求头部信息
使用方法示例如下:
```javascript
axiosPromise({
url: 'https://jsonplaceholder.typicode.com/todos/1',
method: 'get'
}).then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});
```
其中,`axiosPromise`函数返回的是一个Promise对象,可以使用`.then()`和`.catch()`方法分别处理请求成功和请求失败的情况。当请求成功时,`then`方法会接收到服务端返回的数据;当请求失败时,`catch`方法会接收到错误信息。
promise封装axios数据请求
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方法来处理请求成功和失败的情况。通过这种方式,我们可以更好地处理异步请求,提高代码的可读性和可维护性。
阅读全文