《JavaScript 高级程序设计》第十一章 期约与异步函数 学习笔记
2023-10-15 19:46:23
《JavaScript 高级程序设计》第十一章 期约与异步函数 学习笔记
期约
在 JavaScript 中,期约(Promise)是一种表示异步操作的最终完成或失败状态的对象。期约可以被用来避免回调函数的嵌套,从而使异步代码更加容易理解和维护。
期约有三种状态:
- 待定(Pending):期约尚未完成或失败。
- 已完成(Fulfilled):期约已成功完成,并带有结果值。
- 已失败(Rejected):期约已失败,并带有错误值。
异步函数
异步函数是一种允许我们编写异步代码的函数。异步函数使用 async
定义,并且可以使用 await
关键字来等待其他异步操作完成。
异步函数的主要优点是,它使异步代码看起来更像同步代码,从而使代码更加容易理解和维护。
期约与异步函数的结合
期约和异步函数可以很好地结合使用,以实现高性能、可扩展的应用程序。
我们可以使用期约来表示异步操作的最终完成或失败状态,然后使用异步函数来等待这些期约完成。这样,我们可以避免回调函数的嵌套,使代码更加容易理解和维护。
示例
以下是一个使用期约和异步函数来实现异步操作的示例:
async function fetchUserData() {
const response = await fetch('https://example.com/user-data');
const data = await response.json();
return data;
}
fetchUserData().then(data => {
console.log(data);
});
在这个示例中,fetchUserData
函数是一个异步函数,它使用 await
关键字来等待 fetch
和 json
方法完成。
fetch
方法是一个内置的 JavaScript 函数,它可以用来从服务器端获取数据。json
方法是一个内置的 JavaScript 函数,它可以用来将 JSON 数据转换为 JavaScript 对象。
当 fetchUserData
函数完成时,它将返回一个期约对象。然后,我们使用 then
方法来注册一个回调函数,以便在期约完成时执行。
在回调函数中,我们使用 console.log
函数来输出期约的结果。
结论
期约和异步函数是 JavaScript 中非常强大的工具,它们可以帮助我们编写高性能、可扩展的应用程序。
通过使用期约和异步函数,我们可以避免回调函数的嵌套,使代码更加容易理解和维护。