JavaScript Promise 对象的语法 async await 和.then
发布人:shili8
发布时间:2025-01-01 17:18
阅读次数:0
**JavaScript Promise 对象**
Promise 是 JavaScript 中一个用于处理异步操作的对象。它允许你将回调函数延迟到某个时间点,直到异步操作完成。
###什么是 Promise?
Promise 是一个承诺,它代表了一个未来可能发生的事件或结果。它可以被用来表示一个异步操作的结果,例如网络请求、文件读取等。
### Promise 的状态Promise 有三个状态:
1. **Pending**:初始状态,表示 Promise 还没有被解决。
2. **Fulfilled**(已resolve):Promise 已经成功完成了异步操作,并且可以获取结果。
3. **Rejected**(已拒绝):Promise 因为某种原因失败了,例如网络请求超时等。
### Promise 的方法Promise 有以下几个重要的方法:
1. `then()`:用于指定当 Promise 成功完成后要执行的回调函数。
2. `catch()`:用于指定当 Promise 失败时要执行的回调函数。
3. `finally()`:用于指定无论 Promise 最终状态如何,都要执行的回调函数。
### async/awaitasync/await 是 JavaScript 中一个用于简化异步编程的语法糖。它允许你使用同步代码来写异步代码。
#### async 的定义async 是一个关键字,用于定义一个函数,可以返回 Promise 对象。
javascriptasync function myFunction() { // ... }
#### await 的定义await 是一个运算符,用于暂停当前执行线程,直到 Promise 对象 resolve 或 reject。
javascriptlet promise = new Promise((resolve, reject) => { // ... }); await promise;
### then()
then() 方法用于指定当 Promise 成功完成后要执行的回调函数。它接受两个参数:成功时的回调函数和失败时的回调函数。
javascriptnew Promise((resolve, reject) => { // ... }).then( (result) => { console.log(result); }, (error) => { console.error(error); } );
### catch()
catch() 方法用于指定当 Promise 失败时要执行的回调函数。
javascriptnew Promise((resolve, reject) => { // ... }).catch( (error) => { console.error(error); } );
### finally()
finally() 方法用于指定无论 Promise 最终状态如何,都要执行的回调函数。
javascriptnew Promise((resolve, reject) => { // ... }).finally(() => { console.log("Finally executed"); });
### async/await 的示例下面是一个使用 async/await 的示例:
javascriptasync function myFunction() { try { let promise = new Promise((resolve, reject) => { setTimeout(() => { resolve("Hello, World!"); },2000); }); let result = await promise; console.log(result); } catch (error) { console.error(error); } } myFunction();
### async/await 的优势async/await 有以下几个优势:
1. **简化异步编程**: async/await 允许你使用同步代码来写异步代码,减少了编程的复杂度。
2. **提高可读性**: async/await使得你的代码更易于理解和维护。
3. **降低错误率**: async/await 降低了由于异步操作导致的错误率。
### 总结Promise 是 JavaScript 中一个用于处理异步操作的对象。它允许你将回调函数延迟到某个时间点,直到异步操作完成。async/await 是 JavaScript 中一个用于简化异步编程的语法糖。它允许你使用同步代码来写异步代码。Promise 和 async/await 都有各自的优势和劣势。