首页 web前端 js教程 JavaScript 中的异步、等待

JavaScript 中的异步、等待

Oct 27, 2024 am 03:48 AM

在 Javascript 异步中,await 提供了更具可读性和“更干净”的方式来处理 Promise。 (您可以在这里阅读有关承诺的内容)。

首先让我们了解一下语法。

异步关键字:

我们有 async 关键字,当我们声明一个函数是异步的时,我们知道这个函数总是会返回一个 Promise。即使你直接返回一个值,JavaScript 也会自动将其包装在一个 Promise 中。

等待关键字:

首先我们必须知道,如果我们想使用await关键字,我们只能在异步函数中使用它。
这个await关键字暂停异步函数的执行,直到promise被解决或拒绝。

让我们看一个非常简单的 async/await 示例,之后我们将使用一个更大的示例来比较完整的 Promise 方法(没有 async/await)与 async/await 方法。

异步/等待的简单示例:

Async, Await in Javascript

让我们打破它:

  1. response.ok:该属性检查响应的HTTP状态代码是否在成功范围(200-299)内。
  2. response.json():如果响应成功,该函数会解析服务器返回的JSON数据。
  3. response.status:这为您提供了确切的状态代码,例如 404(未找到)或 500(服务器错误)。

现在我们了解了 async/await 的基础知识,让我们更深入地了解一下另一个带有 Promise 的示例。
我们有 3 个函数,每个函数都返回一个 Promise:

Async, Await in Javascript
(这些功能的解释可以在这里找到)

现在,我们可以使用than()和catch()来调用这些函数:
Async, Await in Javascript
此代码是 JavaScript 中 Promise 链的示例,其中异步操作(如获取数据)按顺序执行,并且每一步都依赖于上一步的结果。

  • 一旦 getOrders(user.id) 解析,它将订单数组传递给下一个 .then() 内的回调函数。

  • 订单已记录到控制台。

  • 然后,调用 getOrderDetails(orders[1]),它获取订单数组中的第二个订单(假设它存在)。

  • 此函数返回一个 promise,该承诺在获取订单详细信息时解析。

  • 返回了 getOrderDetails() 的 Promise,因此下一个 .then() 等待这个 Promise 解决。

结果:

Async, Await in Javascript

异步/等待方法:

此代码是如何在 JavaScript 中使用 async/await 的示例,与 Promise 链方法相比,以更具可读性的方式处理异步操作。

Async, Await in Javascript

说明
1.异步函数asyncAwaitExample():

  • 此函数被标记为异步,这意味着它将始终 返回一个承诺。它允许在其中使用await 关键字。
    • 在函数内部,异步代码的编写方式与同步代码的外观和行为类似,从而提高了可读性。
  1. 尝试 { ... } catch (错误) { ... }:
  • try-catch 块用于处理错误。异步操作执行过程中发生的任何错误都将被捕获在 catch 块中。
  1. const user = wait getUser(1);:
  • await 关键字暂停函数的执行,直到 getUser(1) 承诺得到解决。 - 一旦 getUser Promise 解析,结果(用户对象)将存储在用户变量中 -如果promise被拒绝(即发生错误),则跳转到catch块来处理错误 -const Order、const 详细信息的操作相同

4.catch (error) { console.log("错误是:", error); }:

  • 如果任何异步函数(getUser、getOrders 或 getOrderDetails)抛出错误或其 Promise 被拒绝,执行将跳转到 catch 块。

结果:

Async, Await in Javascript

异步/等待的好处:

1.可读性:异步代码看起来像同步代码,减少了嵌套 .then() 块或处理回调地狱的需要。
2.错误处理:使用简单的 try-catch 块,您可以比使用带有 Promise 的 .catch() 更直接地处理错误。
3.可维护性:随着逻辑变得越来越复杂,使用 async/await 比使用 Promise 链更容易遵循和维护。

Async, Await in Javascript

以上是JavaScript 中的异步、等待的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在JavaScript中替换字符串字符 在JavaScript中替换字符串字符 Mar 11, 2025 am 12:07 AM

在JavaScript中替换字符串字符

jQuery检查日期是否有效 jQuery检查日期是否有效 Mar 01, 2025 am 08:51 AM

jQuery检查日期是否有效

jQuery获取元素填充/保证金 jQuery获取元素填充/保证金 Mar 01, 2025 am 08:53 AM

jQuery获取元素填充/保证金

10个jQuery手风琴选项卡 10个jQuery手风琴选项卡 Mar 01, 2025 am 01:34 AM

10个jQuery手风琴选项卡

10值得检查jQuery插件 10值得检查jQuery插件 Mar 01, 2025 am 01:29 AM

10值得检查jQuery插件

HTTP与节点和HTTP-Console调试 HTTP与节点和HTTP-Console调试 Mar 01, 2025 am 01:37 AM

HTTP与节点和HTTP-Console调试

自定义Google搜索API设置教程 自定义Google搜索API设置教程 Mar 04, 2025 am 01:06 AM

自定义Google搜索API设置教程

jQuery添加卷轴到Div jQuery添加卷轴到Div Mar 01, 2025 am 01:30 AM

jQuery添加卷轴到Div

See all articles