返回

《JavaScript 高级程序设计》第十一章 期约与异步函数 学习笔记

前端

《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 关键字来等待 fetchjson 方法完成。

fetch 方法是一个内置的 JavaScript 函数,它可以用来从服务器端获取数据。json 方法是一个内置的 JavaScript 函数,它可以用来将 JSON 数据转换为 JavaScript 对象。

fetchUserData 函数完成时,它将返回一个期约对象。然后,我们使用 then 方法来注册一个回调函数,以便在期约完成时执行。

在回调函数中,我们使用 console.log 函数来输出期约的结果。

结论

期约和异步函数是 JavaScript 中非常强大的工具,它们可以帮助我们编写高性能、可扩展的应用程序。

通过使用期约和异步函数,我们可以避免回调函数的嵌套,使代码更加容易理解和维护。