返回 2.1 ES2017引入的异步函数,使用
工作后才明白:狠抓promise和异步函数,前途不是梦
前端
2023-12-28 19:19:09
前言
异步和同步之间的概念就不多述了,在网上这种文章比比皆是,也不是本篇要讲的重点。
1. Promise(期约)
1.1 ES6新增promise引用类型,可以通过new操作符来实例化,并且创建新pr
const promise = new Promise((resolve, reject) => {
// 异步操作
});
resolve()
:当异步操作成功时调用,将结果传递给.then()
方法。reject()
:当异步操作失败时调用,将错误信息传递给.catch()
方法。
1.2 Promise状态
Promise有三种状态:
- Pending(等待) :初始状态,此时异步操作尚未完成。
- Fulfilled(已完成) :异步操作成功,调用
resolve()
方法后进入此状态。 - Rejected(已拒绝) :异步操作失败,调用
reject()
方法后进入此状态。
1.3 Promise方法
.then()
:当promise状态变为fulfilled
时,执行此方法。.catch()
:当promise状态变为rejected
时,执行此方法。.finally()
:无论promise状态如何,都会执行此方法。
1.4 Promise链式调用
Promise支持链式调用,即在一个.then()
方法中再返回一个promise,这样可以将多个异步操作串联起来。
promise.then(result => {
return anotherPromise(result);
}).then(result => {
// 再次处理结果
});
2. 异步函数
2.1 ES2017引入的异步函数,使用async
声明
async function myAsyncFunction() {
// 异步操作
}
2.2 异步函数的特性
- 使用
await
关键字可以等待异步操作完成。 - 异步函数内部可以使用
try...catch
来捕获错误。
2.3 使用场景
异步函数常用于处理异步操作,如网络请求、文件读写等。
3. Promise和异步函数对比
- Promise是一个对象,异步函数是一个函数。
- Promise的状态可以是
pending
、fulfilled
或rejected
,异步函数只有resolved
和rejected
两种状态。 - Promise支持链式调用,异步函数也支持,但异步函数的链式调用更简洁。
4. 工作中如何使用
在工作中,Promise和异步函数经常会用到。以下是一些常见的场景:
- 网络请求:可以使用Promise或异步函数来发送网络请求,并处理响应结果。
- 文件读写:可以使用Promise或异步函数来读写文件。
- 定时器:可以使用Promise或异步函数来设置定时器。
- 事件监听器:可以使用Promise或异步函数来监听事件。
5. 结语
Promise和异步函数是JavaScript中处理异步操作的利器,熟练掌握这两者,可以大大提高开发效率。在工作中,Promise和异步函数经常会用到,掌握这两者可以帮助你成为一名合格的JavaScript工程师。