Promise/async await
时间: 2023-09-25 08:13:26 浏览: 100
Promise Async+await实现原理及案例分析
Promise 和 async/await 是 JavaScript 中处理异步操作的两种方法。
Promise 是一个表示异步操作的对象,它可以有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。通过 Promise,我们可以更好地处理异步操作的结果。
async/await 是基于 Promise 的语法糖,它使得异步代码看起来更像是同步代码。async 函数返回一个 Promise 对象,并使用 await 关键字来等待 Promise 对象的解决(即 Promise 进入 fulfilled 状态)。
下面是一个使用 Promise 的例子:
```
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = 'Data fetched successfully';
resolve(data);
}, 2000);
});
}
fetchData()
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
```
下面是相同功能的使用 async/await 的例子:
```
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = 'Data fetched successfully';
resolve(data);
}, 2000);
});
}
async function getData() {
try {
const data = await fetchData();
console.log(data);
} catch (error) {
console.error(error);
}
}
getData();
```
在上面的例子中,fetchData 函数返回一个 Promise 对象。在第一个例子中,我们使用 then 和 catch 方法来处理 Promise 对象的结果和错误。而在第二个例子中,我们使用 async/await 来等待 fetchData 函数的解决,并使用 try/catch 来处理异常情况。
总的来说,Promise 和 async/await 都是用于处理异步操作的方法,它们各有特点,可以根据具体需求选择使用。
阅读全文