ES9 新增知识点解析(for-await、Promise.prototype.finally() 等等)

ES9(也称为 ES2018)是 ECMAScript 标准的第 9 版本,于 2018 年 6 月发布。虽然它没有像 ES6 那样带来太多令人兴奋的新功能,但它仍然添加了一些有用的特性,为前端开发人员提供了更好的工具。在本篇文章中,我们将探讨几个新增的特性,包括 for-await、Promise.prototype.finally() 等等。

for-await 循环

for-await 循环是 ES9 中最受欢迎的特性之一。它类似于 for-of 循环,但是适用于异步迭代器。异步迭代器是一个可迭代对象,其返回一个 Promise 对象,该 Promise 对象解析为 cursor.next() 返回的值。for-await 循环的工作原理类似于 async/await,但是对于同步和异步迭代器都有效。

下面是一个简单的示例,演示了如何使用 for-await 循环遍历异步生成器:

该示例定义了一个返回 Promise 对象的异步生成器。然后,我们使用 for-await 循环遍历生成器的值。由于异步生成器是异步的,因此 for-await 循环等待 Promise 对象的解析,并输出它们的值。

Promise.prototype.finally()

ES9 引入了 Promise.prototype.finally() 方法,它在 Promise 完成时执行回调函数。无论 Promise 对象最终是解决还是拒绝,该回调函数都会被调用。此方法可以用于清理资源或在 Promise 执行完成时执行某些操作。

下面是一个使用 Promise.prototype.finally() 的示例:

在这个示例中,我们创建了一个 Promise 并调用了它的 resolve() 方法。我们使用 .then() 处理程序处理 Promise 的结果, .catch() 处理程序处理错误。最后,我们使用 .finally() 处理程序,在 Promise 完成时执行一些操作。在这种情况下,它只是输出 Done。

其他新增特性

除了 for-await 循环和 Promise.prototype.finally() 之外,ES9 还有其他一些值得注意的新增特性:

  • 标准库中,Object.entries() 和 Object.values() 现在支持原始值和对象。
  • 正则表达式现在支持 Unicode 属性转义。
  • 正则表达式现在支持命名捕获组。
  • Spread 语法现在支持 Object。

总结

ES9 带来了一些有用的特性,这些特性将使前端开发人员更易于开发现代应用程序。for-await 循环和 Promise.prototype.finally() 特别有用,它们使异步编程更加容易和优雅。我们建议在你的项目中使用它们,并保持更新,以便知道其他有用的功能和改进。

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


纠错
反馈