ES6 中的 async 和 await 详解及实例应用

阅读时长 4 分钟读完

ES6 中的 async 和 await 是 JavaScript 中非常重要的特性,能够使得异步编程变得更加简洁、易读、易维护。本文将介绍 async 和 await 的详细使用和示例应用。

什么是 async 和 await?

async 和 await 是 ES6 引入的一种异步编程方式,本质上是 Promise 的一种语法糖。async 函数返回一个 Promise 对象,而 await 关键字可以使用在 async 函数内部,将异步操作变成像同步操作一样的流程,让代码变得更加易读。

async 函数的基本用法

async 函数的使用方法很简单,只需要在函数前面加上 async 关键字即可。下面是一个简单的示例:

在这个示例中,async 函数 getData 返回一个 Promise 对象,这个 Promise 对象的状态为 resolved,并且返回值为 'data'。

我们可以通过 then 方法来获取 async 函数的返回值,如下所示:

await 关键字的使用

await 关键字通常只能在 async 函数内部使用,后面需要跟着一个 Promise 对象,表示等待该 Promise 对象的状态变为 resolved 后,将其解析为具体的值。下面是一个简单的示例:

-- -------------------- ---- -------
----- -------- --------- -
  ----- ------- - --- ----------------- ------- -- -
    ------------- -- -
      ----------------
    -- -----
  ---

  ----- ---- - ----- --------
  ------------------
-

在这个示例中,我们先创建了一个 Promise 对象,并在 1 秒后将其解析为具体的值 'data'。接着,在 async 函数内部,我们使用 await 关键字等待该 Promise 对象的状态变为 resolved,并将其解析为具体的值。最后,我们将其打印出来。

输出结果为:

错误处理

在异步操作中,我们需要对可能出现的错误进行处理。在使用 async 和 await 进行异步操作时,我们可以使用 try-catch 语句对错误进行处理。下面是一个示例:

-- -------------------- ---- -------
----- -------- --------- -
  --- -
    ----- -------- - ----- ----------------------------------------------
    ----- ---- - ----- ----------------
    ------------------
  - ----- ------- -
    --------------------- -------
  -
-

在这个示例中,我们使用 fetch 函数请求一个不存在的 URL,从而触发错误。在 async 函数内部,我们使用 try-catch 语句捕获错误,并将错误信息打印出来。

输出结果为:

并发执行异步操作

使用 async 和 await,我们可以很方便地并发执行异步操作。下面是一个示例:

-- -------------------- ---- -------
----- -------- --------- -
  ----- ------- ------ ------ - ----- -------------
    ------------------------------------------------
    ------------------------------------------------
    -----------------------------------------------
  ---

  ------------------------------
  ------------------------------
  ------------------------------
-

在这个示例中,我们使用 Promise.all 方法将三个异步操作并发执行,然后使用 await 等待异步操作结果。最后,我们将三个异步操作的结果分别打印出来。

输出结果为:

总结

async 和 await 是 ES6 引入的一种异步编程方式,能够使得异步编程变得更加简洁、易读、易维护。本文介绍了 async 函数和 await 关键字的基本使用方法和示例应用。同时,我们还介绍了如何正确处理异步操作中出现的错误,并并发执行多个异步操作。这些内容对于学习和使用 async 和 await 非常有帮助,也为我们写出更加优秀的代码提供了指导意义。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64609a31968c7c53b0243c5a

纠错
反馈