使用async, await, Promise ,进行封装api
时间: 2024-09-20 07:03:43 浏览: 33
在JavaScript中,`async`、`await`以及`Promise`一起用于处理异步操作,特别是API调用。它们的主要作用是为了简化回调地狱(callback hell),使得代码更易读和维护。
1. **Promise**:Promise是一个代表异步操作的对象,它有三种状态:pending(等待中)、fulfilled(已成功)和rejected(已失败)。通过`.then()`和`.catch()`方法处理异步结果。
2. **async/await**:`async`关键字用于声明一个函数为异步函数,它返回一个Promise。在async函数内部,我们可以使用`await`关键字暂停函数执行,直到Promise解析完成。`await`后跟随的是一个Promise,当这个Promise的状态变为fulfilled时,它的值会被赋给await后面的变量。
当你需要封装API调用时,通常会这样做:
```javascript
const fetchApi = async (url) => {
try {
const response = await axios.get(url); // 使用axios等库发送请求
return response.data; // 返回解析后的数据
} catch (error) {
throw new Error('Failed to fetch API:', error);
}
};
// 调用API
fetchApi('https://example.com/data')
.then(data => console.log(data))
.catch(error => console.error(error));
```
阅读全文