ES9的新async和await异步函数

ES9的新async和await异步函数

ES9 所带来的 async 和 await 异步函数,可以从根本上改变 JavaScript 异步编程的方式。 在传统的 callback 和 Promise 链式编码中,代码往往难以阅读和维护。 而使用 async 和 await 可以明显简化这种编程风格,并提高代码的流畅性和可读性。

async 和 await的基础概念

在 ES9 中,async 和 await 是一对新的 JavaScript 关键字,分别用来定义一个异步函数和打开它的结果。 由于 async 和 await 是标准的 ECMAScript 内容,不需要引入其他库或框架就可以使用。

其中,async 告诉编译器这是一个异步函数,而 await 则告诉编译器 "等待" 异步操作的结果。 async 函数使用 promise 对象来管理异步操作,并在其内部处理异常。

比如,下面是一个简单的 async 函数的例子,用来得到当前时间:

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

在这个例子中,async 函数每次调用会返回一个 promise 对象,并在结束时返回一个当前的时间值。

async 和 await的指导意义

async/await 函数的优点在于,它能够改写 JavaScript 异步代码,使其看上去更像是同步代码,更易于编写和阅读。这增强了代码的可读性和可维护性。

此外,async/await 函数使得异常处理变得更为方便和直观。 在传统的异步编程中,大多数的错误都是通过回调传递返回值,并带有错误处理的参数来表示的。而 async/await 函数则可以直接使用 try/catch 结构来处理异常操作。

async 和 await的示例代码

使用 async/await 能够极大地简化异步代码,这里给出一个更为实际的 JavaScript 示例,使用 async/await 与反函数的组合,得到一个包含用户数据的简单 GET 请求。

首先要创建一个 async 函数,用于调用服务器 API,并解析结果。然后,使用 ES6 中的 Fetch API 来发送请求,并提取 JSON 数据。

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

接着,为了获得所需的用户数据,请创建一个 async 函数来使用 getUsers() 方法,并对其“等待”。最后,在此上下文中使用 console.log() 打印用户。

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

结论

我们可以看到,使用 async 和 await 可改变 JavaScript 的异步编程方式,使其代码更整洁、清晰和易于理解。 通过使代码更接近同步执行的样子,async 和 await 函数能够消除异步编程中的回调地狱,并将代码编写过程更接近人们的日常思考方式,让代码更加直观易懂。这里的示例仅代表了一个小片段,更多关于 async/await 函数的内容,我们欢迎探索在线文档。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671e8a852e7021665ef86a2a