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